#2451 Le 03/02/2012, à 00:33
- grim7reaper
Re : /* Topic des codeurs [6] */
En fait le mieux, je crois que c’est juste d’utiliser Wall et Wextra.
Car contrairement à gcc, je pense que le but de clang ce n’est pas d’avoir une tétrachiée d’options à ajouter pour être strict mais plutôt d’être strict dès le début. Apparemment, si un warning est important pour pas mal de gens il fini par être intégré à Wall ou Wextra.
If you find a Clang warning that -Wextra doesn't include but which proves at all valuable to you, simply file a bug and we can likely put it under -Wextra
Dernière modification par grim7reaper (Le 03/02/2012, à 00:34)
Hors ligne
#2452 Le 03/02/2012, à 00:35
- Pylades
Re : /* Topic des codeurs [6] */
@Pylade: tiens, un article qui explique assez bien comment est géré le système de clés avec pacman 4. Si tu ne veux pas t'encombrer avec la signature des paquets, il te suffit de laisser le SigLevel en Never. Si tu as eu des soucis, c'est probablement que tu n'avais pas mergé le pacman.conf.pacnew Moi je trouve ça bien, donc je l'active pour les dépôts pour lesquels c'est déjà bien en place et je n'ai pas à m'en plaindre.
Merci. Du coup, j’ai tout bien remis comme il faut.
(Grumpf, ça pique de repasser sous WebkitGtk…)
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#2453 Le 03/02/2012, à 00:42
- Rolinh
Re : /* Topic des codeurs [6] */
@Pylade: pas de quoi
@grim7reaper: je ferais des tests et j'adapterais
Hors ligne
#2454 Le 03/02/2012, à 00:45
- The Uploader
Re : /* Topic des codeurs [6] */
require 'rubygame'
$LOAD_PATH << '../'
require 'lib/point'
include Lib
module MASWithTwoNests
class Agent
attr_reader :target_point
attr_reader :dead
include Rubygame::Sprites::Sprite
def initialize
super
@target_point = Point.new
@direction = Point.new
@dead = false
end
def current_point
Point.new(rect.x, rect.y)
end
def change_direction
@direction = Point.new(Math.rand, Math.rand)
@direction.x = @direction.x * - 1 if Math.rand > 0.5
@direction.y = @direction.y * - 1 if Math.rand > 0.5
@direction.normalize!
end
end
end
$LOAD_PATH << '../'
require 'lib/point'
include Lib
require 'agent'
require 'world'
module MASWithTwoNests
class Resource < Agent
attr_reader :life
def initialize(life, move_delay = 0, speed = 0)
super()
@move_delay = move_delay
@update_time = 0
@speed = speed
if World.RESOURCE_RANDOM_START_LIFE
@life = life * Math.rand + World.RESOURCE_UPDATE_VALUE
else
@life = life
end
change_direction
end
def decrease_life
@life = @life - World.RESOURCE_UPDATE_VALUE
end
def increase_life
@life = @life + World.RESOURCE_UPDATE_VALUE
end
def update
#TODO
end
def draw_sprite
#TODO
end
end
end
$LOAD_PATH << '../'
require 'ExpertSystem/fact'
include ExpertSystem
module MASWithTwoNests
class AgentFacts
NOTHING_SEEN = Fact.new("Nothing seen")
SEE_RESOURCE = Fact.new("Resource seen")
REACHED_RESOURCE = Fact.new("Resource reached")
GOT_RESOURCE = Fact.new("Got resource")
NO_RESOURCE = Fact.new("Got no resource")
BIGGER_RESOURCE = Fact.new("Resource is bigger")
SMALLER_RESOURCE = Fact.new("Resource is smaller")
CHANGE_DIRECTION_TIME = Fact.new("Time to change direction")
SEEING_HOME = Fact.new("Seeing home")
NOT_SEEING_HOME = Fact.new("Not seeing home")
GO_HOME = Fact.new("Go home")
AT_HOME = Fact.new("At home")
CHANGE_DIRECTION = Fact.new("Changing direction")
GO_TO_RESOURCE = Fact.new("Going to resource")
TAKE_RESOURCE = Fact.new("Taking Resource.")
PUT_DOWN_RESOURCE = Fact.new("Putting down Resource.")
end
end
ça avance doucement...
Dernière modification par The Uploader (Le 03/02/2012, à 00:56)
- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10
Hors ligne
#2455 Le 03/02/2012, à 01:25
- Pylades
Re : /* Topic des codeurs [6] */
@pylade: regarde init.sh…
Ah, ouais…
Πυλάδης a écrit :Au fait, les utilisateur de Clang/LLVM, vous n’avez pas de problème avec Valgrind ?
À première vue non, tu as un exemple de code ?
Bah sur des erreurs de tas que j’ai depuis corrigées Valgrind ne me reportait l’adresse complète des erreurs qu’en compilant avec GCC… Mais je n’ai pas d’exemples précis sous la main.
Πυλάδης a écrit :(sans compter que les flags pour les warnings ne sont pas documentés)…
Perso, pour le mode débug, je suis passé à ça
clang -g -ansi -pedantic -Weverything -fcatch-undefined-behavior -ftrapv
^^
Le -pendantic est redondant. Et -ftrapv n’est décrit que dans le man de GCC et semble redondant avec -fcatch-undefined-behavior. D’ailleurs, ce flag n’est à utiliser qu’en débug, sinon il pourrie les perfs, hein ?
Sinon, pour plus d’info tu peux lire la réponse d’un dev de Clang qui bosse chez Google.
Ouais, mais ça ne me donne toujours pas la liste et la description des flags supportés par Clang…
Dernière modification par Πυλάδης (Le 03/02/2012, à 01:25)
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#2456 Le 03/02/2012, à 07:19
- grim7reaper
Re : /* Topic des codeurs [6] */
Hello World!
xelatex réparé
grim7reaper a écrit :Πυλάδης a écrit :Au fait, les utilisateur de Clang/LLVM, vous n’avez pas de problème avec Valgrind ?
À première vue non, tu as un exemple de code ?
Bah sur des erreurs de tas que j’ai depuis corrigées Valgrind ne me reportait l’adresse complète des erreurs qu’en compilant avec GCC… Mais je n’ai pas d’exemples précis sous la main.
Pas de traces, pas de preuves
grim7reaper a écrit :Πυλάδης a écrit :(sans compter que les flags pour les warnings ne sont pas documentés)…
Perso, pour le mode débug, je suis passé à ça
clang -g -ansi -pedantic -Weverything -fcatch-undefined-behavior -ftrapv
^^
Le -pendantic est redondant.
Possible, mais je n’en suis pas certain. Sauce ?
Et -ftrapv n’est décrit que dans le man de GCC
Clang also fully supports the -ftrapv flag (not to be confused with -fwrapv) which causes signed integer overflow bugs to trap at runtime (GCC also has this flag, but it is completely unreliable/buggy in my experience).
Je donne des liens, t’es certes pas obligé de les lire mais si je dis que j’ai ajouté ces options après avoir lu le lien X et Y c’est un petit peu douteux de ta part de présumé d’un truc sans avoir lu lesdits liens.
semble redondant avec -fcatch-undefined-behavior.
Non, d’après mes liens (encore une fois) il ne le semble pas.
D’ailleurs, ce flag n’est à utiliser qu’en débug, sinon il pourrie les perfs, hein ?
C’est bien pour ça que j’ai parlé de ma ligne de debug, pas de release…
mais oui, ça pourrie les perf’.
grim7reaper a écrit :Sinon, pour plus d’info tu peux lire la réponse d’un dev de Clang qui bosse chez Google.
Ouais, mais ça ne me donne toujours pas la liste et la description des flags supportés par Clang…
Tu en as un certains nombre (dont ftrapv ) là
clang -cc1 --help
Mais pas rien au sujet des warnings.
Hors ligne
#2457 Le 03/02/2012, à 09:57
- tshirtman
Re : /* Topic des codeurs [6] */
tshirtman a écrit :@pylade: regarde init.sh…
Ah, ouais…
si tu trouve mieux tu me fais signe…
après, on pourrais avoir un alias pour indiquer à vim ou est le .vimrc, mais je trouve pas ça mieux, apparement, si je le met dans .vim/plugin/vimrc.vim il est appelé, mais il y a des erreur, par ce qu'il trouve pas des fonctions (appelé trop tot?), si je le met dans .vim/after il ne semble pas appelé… je vais creuser un peu plus…
Hors ligne
#2458 Le 03/02/2012, à 11:16
- Rolinh
Re : /* Topic des codeurs [6] */
Πυλάδης a écrit :tshirtman a écrit :@pylade: regarde init.sh…
Ah, ouais…
si tu trouve mieux tu me fais signe…
J'allais dire que l'autre solution c'est d'aliaser vim à vim -u ~/.vim/vimrc mais perso, je trouve un symlink plus propre. C'est quoi qui te dérange là-dedans?
C'est d'ailleurs comme ça que je procède pour tout mes confs: script de configuration.
Hors ligne
#2459 Le 03/02/2012, à 17:43
- Dr Le Rouge
Re : /* Topic des codeurs [6] */
Je viens de rencontrer valgrind mais il m'a déjà sauvé la vie
C'est deux suites de Cauchy qui veulent aller à la soirée 'no limit'. Hélas, à l'entrée le videur leur dit : "désolé, c'est complet !".
mon site perso (π²/6.fr) et mon blog
Hors ligne
#2460 Le 03/02/2012, à 19:17
- grim7reaper
Re : /* Topic des codeurs [6] */
@Le Rouge : à toutes fins utiles, voilà ma ligne pour les fuites de mémoire
valgrind --tool=memcheck --leak-check=full --leak-resolution=high --show-reachable=yes
Après, si tu utilises valgrind pour le profilage je n’ai pas de ligne toute faite.
Dernière modification par grim7reaper (Le 03/02/2012, à 19:20)
Hors ligne
#2461 Le 03/02/2012, à 20:07
- Dr Le Rouge
Re : /* Topic des codeurs [6] */
Oulà, profilage, j'en suis pas de là ^^ De toute façon les perf' de mon programme sont sans importances ; par contre les segfaults étaient gênantes. Et les indications de g++ et gdb m'indiquaient un problème aux antipodes de sa localisation réelle -_-"
Donc bref, merci bien
C'est deux suites de Cauchy qui veulent aller à la soirée 'no limit'. Hélas, à l'entrée le videur leur dit : "désolé, c'est complet !".
mon site perso (π²/6.fr) et mon blog
Hors ligne
#2462 Le 03/02/2012, à 20:32
- Rolinh
Re : /* Topic des codeurs [6] */
Dites, on n'est pourtant pas le 1er avril non? Il parait que le code source de mon Window Manager favori (Awesome pour ceux qui ne seraient pas encore au courant ) se retrouve dans la liseuse Kindle Touch d'Amazon! Je trouve ça quand même vraiment curieux.
Hors ligne
#2463 Le 03/02/2012, à 21:15
- The Uploader
Re : /* Topic des codeurs [6] */
Énorme !
Bon par contre je crois qu'Amazon va avoir un petit problème avec la GPLv2 s'ils ne diffusent pas leur sources..
- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10
Hors ligne
#2464 Le 03/02/2012, à 21:18
- tshirtman
Re : /* Topic des codeurs [6] */
ils ont l'air de les diffuser…
Hors ligne
#2465 Le 03/02/2012, à 21:30
- Pylades
Re : /* Topic des codeurs [6] */
Possible, mais je n’en suis pas certain. Sauce ?
http://clang.llvm.org/docs/UsersManual. … everything
Je donne des liens, t’es certes pas obligé de les lire mais si je dis que j’ai ajouté ces options après avoir lu le lien X et Y c’est un petit peu douteux de ta part de présumé d’un truc sans avoir lu lesdits liens.
Je n’ai pas tout lu entier (en fait, je n’ai pas vraiment tout compris), mais cependant, -ftrapv n’est pas mentionné dans la doc de Clang, ça n’aide pas vraiment à comprendre…
Tu en as un certains nombre (dont ftrapv ) là
clang -cc1 --help
Mais pas rien au sujet des warnings.
Je veux tout, et avec des descriptions détaillées.
C’est dommage, parce que c’est ce qui manque à ce compilateur (qui est moins con que GCC dans certaines situations ; par exemple, il ne warn pas sur des headers système par défaut) pour donner envie de migrer…
Dernière modification par Πυλάδης (Le 03/02/2012, à 21:30)
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#2466 Le 03/02/2012, à 22:27
- Kanor
Re : /* Topic des codeurs [6] */
@Rolinh j'aurais jamais pensé awesome dans un produit grand publique
Hors ligne
#2467 Le 03/02/2012, à 22:37
- Rolinh
Re : /* Topic des codeurs [6] */
Moi non plus! Et encore moins dans un produit tactile!! Je me demande d'ailleurs pour quelle raison ils ont utilisé Awesome. Apparemment, ça tourne autour des librairies lua (awful? naughty??).
Tiens, je pensais devoir compiler le 3.2.3 et ben non, ça sera le 3.2.4. Deux bump dans un intervalle de 2h15, c'est pas courant mais ça me rassure qu'à ce niveau aussi ça péclote des fois.
Hors ligne
#2468 Le 03/02/2012, à 23:45
- The Uploader
Re : /* Topic des codeurs [6] */
Suite de la traduction du truc d'IA en Ruby [Rubygame + Rubygoo] :
Le "World" apparaît à l'écran et les Resources aussi.
require 'rubygoo'
require 'rubygame'
include Rubygame
include Rubygoo
$LOAD_PATH << '../'
require "lib/point"
$LOAD_PATH << './'
require 'resource'
module MASWithTwoNests
class World
WIDTH = 600
HEIGHT = 600
BOT_START_FROM_HOME = false
BOT_WITH_RESOURCE_SPEED_COEFF = 1
BOT_RADIUS = 2
BOT_PERCEPTION_RADIUS = 40
BOT_COUNT = 80
BOT_INIT_POSITION = Point.new(WIDTH / 2, HEIGHT / 2)
BOT_SPEED = 100
BOT_DIRECTION_CHANGE_DELAY = 500
RESOURCE_LIFE_RADIUS_COEFF = 10
RESOURCE_START_LIFE = 3
RESOURCE_UPDATE_VALUE = 0.1
RESOURCE_RESPAWN_DELAY = 500
RESOURCE_COUNT = 15
RESOURCE_MOVE_DELAY = 7000
RESOURCE_MOVE_SPEED = 110
HOME_RADIUS = 10
HOME_GETTING_BIGGER = true
RESOURCE_RANDOM_START_LIFE = true
def initialize(screen)
@agents = Rubygame::Sprites::Group.new
@agents << Resource.new(3)
@screen = screen
@agents.draw(@screen)
@screen.flip
end
def update
@agents.update
end
def draw
@agents.draw(@screen)
@screen.flip
end
def is_out?
#TODO
end
#TODO
end
end
$LOAD_PATH << '../'
require 'lib/point'
include Lib
$LOAD_PATH << './'
require 'agent'
require 'world'
require 'rubygame'
module MASWithTwoNests
class Resource < Agent
attr_reader :life
def initialize(life, move_delay = 0, speed = 0)
super()
@move_delay = move_delay
@update_time = 0
@speed = speed
if World::RESOURCE_RANDOM_START_LIFE
@life = life * Random.rand + World::RESOURCE_UPDATE_VALUE
else
@life = life
end
@image = Rubygame::Surface.new([World::RESOURCE_LIFE_RADIUS_COEFF * @life, World::RESOURCE_LIFE_RADIUS_COEFF * @life])
@rect = @image.make_rect
@image.set_colorkey([0, 0, 0])
change_direction
end
def decrease_life
@life = @life - World::RESOURCE_UPDATE_VALUE
end
def increase_life
@life = @life + World::RESOURCE_UPDATE_VALUE
end
def draw(arg)
@image.draw_circle_s(@rect.topleft, World::RESOURCE_LIFE_RADIUS_COEFF * @life, Rubygame::Color::ColorRGB.new([0, 0 , 1, 1]))
super(arg)
end
def update
end
end
end
require 'rubygoo'
require 'rubygame'
include Rubygame
include Rubygoo
module MASWithTwoNests
class Main
attr_reader :clock
def initialize
@screen = Screen.new [800, 600]
@factory = AdapterFactory.new
@render_adapter = @factory.renderer_for :rubygame, @screen
@app = App.new :renderer => @render_adapter
@clock = Clock.new
@clock.target_framerate = 20
@clock.calibrate
@pause_chkbx = CheckBox.new :x => 601, :y => 0, :w => 10, :h => 10, :label_text => "Pause"
@home_chkbx = CheckBox.new :x => 601, :y => 20, :w => 10, :h => 10, :label_text => "Start from home"
@exp_chkbx = CheckBox.new :x => 601, :y => 40, :w => 10, :h => 10, :label_text => "Home expansion"
@exp_chkbx.checked = true
@restart_btn = Button.new "Restart", :x => 601, :y => 80, :x_pad => 200, :y_pad => 10
@app.add @pause_chkbx, @home_chkbx, @exp_chkbx, @restart_btn
@restart_btn.on :pressed do
@world = World.new(@screen)
end
@app_adapter = @factory.app_for :rubygame, @app
@queue = EventQueue.new
@world = World.new(@screen)
end
def run
loop do
update
@app_adapter.update @clock.tick
@app_adapter.draw @render_adapter
@world.update
@world.draw
end
end
def update
@queue.each do |event|
# pass on our events to the GUI
if event.class == QuitEvent
throw :rubygame_quit
end
@app_adapter.on_event event
end
end
m = Main.new
m.run
end
end
Je vais bientôt mettre un git pour gérer les versions, la suite sera costaud (mais le plus dur est passé)
Dernière modification par The Uploader (Le 03/02/2012, à 23:52)
- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10
Hors ligne
#2469 Le 04/02/2012, à 01:01
- Etoma
Re : /* Topic des codeurs [6] */
python
"un gars qui agit pour le bien des gens sans leur demander leur avis"
PirateBox
Hors ligne
#2470 Le 04/02/2012, à 09:22
- The Uploader
Re : /* Topic des codeurs [6] */
On other news : *sifflote*
diff --git a/MASWithTwoNests/main.rb b/MASWithTwoNests/main.rb
index fce703a..0b04ab8 100644
--- a/MASWithTwoNests/main.rb
+++ b/MASWithTwoNests/main.rb
@@ -7,7 +7,6 @@ require 'resource'
module MASWithTwoNests
class Main
- attr_reader :clock
def initialize
@screen = Screen.new [800, 600]
@factory = AdapterFactory.new
@@ -23,11 +22,11 @@ module MASWithTwoNests
@restart_btn = Button.new "Restart", :x => 601, :y => 80, :x_pad => 200, :y_pad => 10
@app.add @pause_chkbx, @home_chkbx, @exp_chkbx, @restart_btn
@restart_btn.on :pressed do
- @world = World.new(@screen)
+ @world = World.new
end
@app_adapter = @factory.app_for :rubygame, @app
@queue = EventQueue.new
- @world = World.new(@screen)
+ @world = World.new
end
def run
@@ -35,8 +34,9 @@ module MASWithTwoNests
update
@app_adapter.update @clock.tick
@app_adapter.draw @render_adapter
- @world.update
- @world.draw
+ @world.update(@clock)
+ @world.draw(@screen)
+ @screen.flip
end
end
diff --git a/MASWithTwoNests/resource.rb b/MASWithTwoNests/resource.rb
index da7837f..48ab206 100644
--- a/MASWithTwoNests/resource.rb
+++ b/MASWithTwoNests/resource.rb
@@ -38,7 +38,7 @@ module MASWithTwoNests
super(arg)
end
- def update
+ def update(clock)
end
diff --git a/MASWithTwoNests/world.rb b/MASWithTwoNests/world.rb
index c95d038..19714d3 100644
--- a/MASWithTwoNests/world.rb
+++ b/MASWithTwoNests/world.rb
@@ -33,21 +33,19 @@ module MASWithTwoNests
HOME_GETTING_BIGGER = true
RESOURCE_RANDOM_START_LIFE = true
- def initialize(screen)
+ def initialize
+ @background = Rubygame::Surface.new([WIDTH, HEIGHT])
@agents = Rubygame::Sprites::Group.new
@agents << Resource.new(3)
- @screen = screen
- @agents.draw(@screen)
- @screen.flip
end
- def update
- @agents.update
+ def update(clock)
+ @agents.update(clock)
end
- def draw
- @agents.draw(@screen)
- @screen.flip
+ def draw(screen)
+ @background.blit(screen, [0, 0])
+ @agents.draw(screen)
end
(le truc bleu est une resource)
\o/
Dernière modification par The Uploader (Le 04/02/2012, à 09:55)
- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10
Hors ligne
#2471 Le 04/02/2012, à 11:08
- grim7reaper
Re : /* Topic des codeurs [6] */
grim7reaper a écrit :Possible, mais je n’en suis pas certain. Sauce ?
Merci
C’est dommage, parce que c’est ce qui manque à ce compilateur (qui est moins con que GCC dans certaines situations ; par exemple, il ne warn pas sur des headers système par défaut) pour donner envie de migrer…
Ouais, c’est vrai que la doc laisse franchement à désirer
Hors ligne
#2472 Le 04/02/2012, à 11:26
- tshirtman
Re : /* Topic des codeurs [6] */
python
si t'as des questions/besoin de docs/d'éxamples hésite pas
Hors ligne
#2473 Le 04/02/2012, à 13:34
- Etoma
Re : /* Topic des codeurs [6] */
Etoma a écrit :python
http://www.bestweekever.tv/bwe/images/2 … eaaaah.jpg
si t'as des questions/besoin de docs/d'éxamples hésite pas
Je vais aller chercher un bouquin déjà.
Je crois que la collection O'reilly est pas mal.
@ The Uploader : J'utilise Xubuntu, ça compense, non?
Dernière modification par Etoma (Le 04/02/2012, à 13:36)
"un gars qui agit pour le bien des gens sans leur demander leur avis"
PirateBox
Hors ligne
#2474 Le 04/02/2012, à 13:50
- Rolinh
Re : /* Topic des codeurs [6] */
Je pense que c'est un bon choix. Même si plus je découvre Ruby, plus je l'apprécie, je trouve que Python est très bien comme premier langage.
Tiens, rien que pour l'aspect à forcer l'indentation. (Oui, j'ai été "traumatisé" quand j'ai dû évaluer du code Racket dont chaque fonction était écrite sur... une seule ligne!).
Mais à part ça, z'en faites pas un peu trop là les évangélistes Python et Ruby? Je veux dire, je ne suis pas venu lui recommander l'assembleur ou le C moi! ..... (bon, ça aurait pas été une bonne chose de toute façon ^^ ...)
Hors ligne
#2475 Le 04/02/2012, à 15:57
- tshirtman
Re : /* Topic des codeurs [6] */
Oui heureusement que tu ne lui a pas conseillé ça ^^, mais ça m'arrive encore de croiser des gens pour dire que c'est indispensable de les apprendre (oui, les deux) et que c'est pas mal pour commencer… hum…
après, tu vois quoi comme bon premier langage?
perso j'aimerai bien prendre le temps d'apprendre GO, mais pas le temps >_>
Hors ligne