jeudi 27 décembre 2007
A l'assaut du Java...
Il fallait bien que ça arrive, à force de voir des offres d'emploi demandant la connaissance du Java dans le profil du candidat... J'ai craqué, et je me suis lancé dans une petite formation aux bases du langage Java, en ligne, gracieusement financée par mon "employeur" actuel. Il est clair que je compte surtout acquérir quelques notions pour pouvoir me dépatouiller avec en cas de besoin (et l'ajouter sur mon CV, cela va de soi...), mais que d'emblée, j'ai un a priori assez fort contre ce langage...
Pour l'instant, la qualité du tuto est assez discutable, avançant des affirmations un peu suspectes comme "avec une vitesse d'exécution comparable au C et C++" (je demande à voir pour le C !), "beaucoup plus portable et modulable" (tiens donc !), "Syntaxe très simple et peu contraignante" (!!!)... Aucune aide pour l'installation, et une grande légèreté dans l'explication de la compilation et de l'exécution (qui ne marchait pas au départ avec leurs indications...). Bref, ça partait plutôt mal...
Du coup, je suis passé voir le tuto Java du Site du Zéro, qui avait pas l'air trop mal, et où il m'est confirmé une impression que j'avais : sous Windows, sans IDE, tu peux t'accrocher mon poulet... JBuilder qui y était recommandé étant depuis devenu payant, j'ai pris JCreator qui est supposé être bien pour les débutants. Pour l'instant ça me paraît assez clair (j'utilise à peu près jamais d'IDE, ces trucs là me gonflent...) et fait miraculeusement tourner le code de départ de la formation. Jetons un coup d'oeil :
Java :
// Sortez une hache, j'attaque Java...
package exemples.messages ;
public class PremiereApp{
public static void main(String args[]){
System.out.println ("Ma premiere appli Java") ;
}
}
Ruby :
puts "Ma 267eme appli en Ruby..."
Allez, j'arrête de râler, et je m'y plonge sérieusement : je peux pas croire que le Java serait tant utilisé s'il était aussi foireux que ce que je crois... A l'attaque !
Publié par Sobe à 00:48 3 commentaires
Tags : code, java, pro, programmation, ruby
mercredi 26 décembre 2007
samedi 22 décembre 2007
RubyShyne
est un outil de bureau, implémenté en Ruby, convertissant un code source en HTML coloré syntaxiquement (pour le présenter sur une page web, par exemple). Ce petit code est placé sous la licence libre BSD. Il supporte actuellement les langages Ruby, Java, Fortran et Groovy, et est facilement paramètrable pour obtenir le style de votre choix.
is a desktop-tool implemented in Ruby. It converts source code into HTML with syntax highlightment (in order to paste it on a web page, for instance). This humble code is under free-software BSD licence. Its current version supports Ruby, Java, Fortran and Groovy programming languages. You can easily configure it to get the highlighting style of your choice.
Exemple / Example :
=begin
Let's test
RubyShyne
and Duck Typing
!
=end
class Duck
attr_reader :name, :position
def initialize who
@name = who
@position = 0.0
@@legs = 2
end
def walk miles
@position += miles
end
def quack
puts "KWAAAAK !!!"
end
end
# Let's call one Herbert
a_duck = Duck.new "Herbert"
$weather = "Sunny"
for i in (0..2)
a_duck.quack
end
# Where are you going bro ?
a_duck.walk 10.0
puts "Herbert walked ", a_duck.position.to_s,\
"miles."
ATTENTION : un interpréteur Ruby est nécessaire à son utilisation !
WARNING: a Ruby interpreter is necessary to use it !
12/2007 : v0.5
Documentation et manuel (fichier lisez_moi.txt) sont inclus dans l'archive.
Doc and user manual (readme.txt file) are included into the archive.
N'hésitez pas à me contacter pour toute question, rapport de bug ou suggestion.
Feel free to contact me for any question, bug report or suggestion.
Mise à jour / Update : 4/01/2008
Publié par Sobe à 19:03 0 commentaires
Tags : code, fortran, programmation, ruby
vendredi 21 décembre 2007
Matrices en Ruby : 1 - Attention !
Avant de raller, un rapide aperçu :
- Pour la création, pas mal de méthodes à disposition (mais pas new !) : par ligne, par colonne, nulle, diagonale, identité... il manquerait peut-être les triangulaires mais ne chipotons pas trop...
- Les méthodes d'accès aux cellules, lignes et colonnes, tailles, méthode collect...
- Les opérateurs classiques (+, -, *, **...) et l'opérateur "/" qui ferait hurler à peu près n'importe quel prof de maths non-muet (la division d'une matrice A par une matrice B n'existant pas au sens strict : il s'agit de la multiplication de A par l'inverse de B SI CELLE-CI EST INVERSIBLE !).
- Les méthodes sur les matrices : déterminant, rang, trace et transposition.
- Les outils de conversion divers (to_s, vecteurs colonnes, etc...)
WARNING : déterminant faux !!!
C'est vrai, c'est noté dans la doc, mais ça reste savonneux un truc pareil : il est nécessaire d'inclure la lib mathn sous peine d'avoir des déterminants erronés (dans l'exemple du code on obtenait -20 au lieu de -19 pour a et 0 pour b, ce qui est par définition impossible pour une matrice inversible, et donc pour l'inverse d'une matrice...). J'espère que la correction sera faite dans la version 1.9 parce qu'un truc pareil, ça craint sec !
Affichage : "Yé souis pas oun' machine !"
La méthode to_s est bien gentille, mais elle est pas franchement compréhensive pour nos pauvres yeux : une matrice étant le plus souvent un tableau 2D (ici en tout cas...), c'est plus sympa de l'avoir sous forme de tableau à l'écran. Je propose une méthode print dans le code du jour pour avoir une sortie console plus lisible.
Matrice non-rectangulaire ?
Également notifié dans la documentation, il n'est pas imposé par la classe qu'une matrice soit rectangulaire : par les mathématiques si en revanche. Cela pourrait éventuellement poser des soucis assez significatifs de se trimballer des coefficients nil... Mais d'un autre côté, économiser de la place sur les matrices creuses sans introduire de structure de stockage dédiée (typiquement un tableau 3*n pour une matrice tri-diagonale n*n) est assez tentant. A tester, on en reparlera.
Le code :
Juste des petits tests sur une matrice d'entiers 3*3 (tester sans le 'mathn', vous verrez !) avec l'introduction de ma petite méthode d'affichage.
require 'Matrix'
# WARNING !!! Mandatory to get real determinant value !!!
require 'mathn'
a = Matrix.columns([[1,2,5],[0,5,1],[1,1,1]])
# "Classic" to_string
puts "a = " + a.to_s
class Matrix
# Print a "human readable" matrix
# Why doesn't it already exist ?
def print
for i in (0...self.row_size)
strg = ""
for j in (0...self.column_size)
strg = strg + " " + (self.[](i,j)).to_s
end
puts strg
end
end
end
puts "\na = "
a.print
puts "\nDet(a) = " + (a.determinant).to_s
b = a.inverse
puts "\nb = a^-1 = "
b.print
# b determinant should be a determinant inverse
puts "\nDet(b) = " + (b.determinant).to_s + "\n"
c = a*b # Should be equal to identity matrix I
puts "\nc = a*b = "
c.print
Publié par Sobe à 00:03 3 commentaires
Tags : cfd, code, programmation, ruby, science
mercredi 19 décembre 2007
Blogs Ruby
- Giles Bowkett, par Giles Bowkett (Ruby, Rails, web, MacOS, Smalltalk, musique et plus...) - :en
- Ruby's Cube (Toulouse), par francisoud (Ruby, Rails) - :fr
- Hackety Org, par Why the Lucky Stiff (Ruby, Shoes, art, Io...) - :en
- Zen and the Art of Ruby Programming, par Antonio Cangiano (Ruby, Python, Rails, autres langages...) - :en
- Juixe TechKnow, par TechKnow (Ruby, Rails, Java, web, MacOS...) - :en
- Boldr, par Nicolas Mérouze (Ruby, Rails...) - :fr
- Greg.rubyfr.net, par Greg (Ruby, Rails, web, Apple, Linux...) - :fr
- The Byte Codex, par Matt Gauger (Ruby, Shoes) - :en
- Shiny happy people coding, par Cyril Mougel (Ruby, Rails...) - :fr
- Je code donc je suis, par Fredix (Ruby, Typo...) - :fr
- On Ruby, par Pat Eyler (Ruby, livres...) - :en
- Programming Language Synchronicity, par Ola Bini (JRuby, Java, Io, Ioke, Scala et plus...) - :en
- ChadFowler, par Chad Fowler (Ruby, Rails, dev agile...) - :en
- OnGoing-Technologie-Ruby, par Tim Bray (Ruby) - :en
- Enfranchised Mind, par Robert Fischer (Ruby, Rails, Groovy, Grails, autres langages...) - :en
- Virtuous Code, par Avdi Grimm (Ruby, dev agile...) - :en
- Dev Logger, par Martin Carel (Ruby, Rails, quiz...) - :en
- DABlog, par David A. Black (Ruby, autre) - :en
- Segment 7, par Eric Hodel (Ruby, web, BSD...) - :en
- tyPouypOblOg, par Yannick François (Ruby, BSD, web, Typo) - :fr
- Nutrun, par George Malamidis (Ruby, design logiciel, autre...) - :en
- {|one, step, back|}, par Jim Weirich (Ruby, autre) - :en
- Jay McGavren's Journal, par Jay McGavren (Ruby, Rails, General Dev...) - :en
- Algo::rithmique, par Greg (Ruby, Mac, web framework...)
Dernière mise à jour : 18/10/2009
Publié par Sobe à 19:40 1 commentaires
Tags : liens, programmation, ruby, sobe session, web
mardi 18 décembre 2007
Un nouveau tutoriel Ruby : introspection
Il se penche sur un point très puissant du Ruby : l'introspection, c'est à dire la capacité du code à s'analyser lui même. Si ça peut paraître abstrait vu d'ici, je vous conseille vraiment d'aller y jeter un coup d'oeil, car pas mal de choses sont en fait utilisables "au quotidien" (j'y ai mieux compris des choses que j'utilisais depuis assez longtemps...).
Le tuto :
Publié par Sobe à 21:43 0 commentaires
Tags : liens, meta, programmation, ruby
Programmation poétique - Chapitre III : World at War
Voilà des années, que Hank Thernett, grand explorateur américain né à Redmond, affirmait sa suprématie sur toutes les mers du globe... Il connaissait le moindre recoin de chacun des océans, et tous les ports lui étaient grand ouverts, grâce à ses nombreux contacts, dont le célèbre Mike Rosoft Wedows. Il avait dû se battre pour en arriver là, notamment contre le célèbre Ned S. Caype !
Un nuage sombre couvrit le soleil, annonçant un orage prochain. Et pourtant, depuis quelques temps, de nombreux nouveaux venus dans le monde de la navigation gagnaient peu à peu sur son prestige. Le noble Saint-Ferri de Lapomme, le redoutable pirate "Renard de Feu", Roald O. Perason le scandinave pour les plus célèbre...
Le vent soufflait à présent plus fort de babord, l'équipage s'activa pour changer les voiles. Tous ne souhaitaient qu'une chose : qu'il perde son monopole sur ses comptoirs, et piller ses précieux clients à sa place. Et la populace des ports les plus miteux semblait sensible aux bruits qu'ils faisaient courir à son sujet sur de prétendues épidémies qu'il aurait apporté avec lui... Foutaise !
Il lui fallait avant tout se tenir sur ses gardes, une attaque en mer peut être fulgurante, et Dieu sait qu'il en avait essuyé ! Et soudain apparut le vaisseau du "Viking"...
La guerre des éditeurs :
- Tu sais utiliser VI toi ?
- Non, pourquoi ?
- J'en ai besoin pour éditer un fichier binaire en fait...
- Ah ! Mais ça doit être faisable avec XEmacs alors !
- Euh, ouais, peut-être... je connais pas non plus en fait...
- ...
- Tu pourrais me montrer ?
- Yep, pas de soucis
Un peu plus tard...
- Bon, voilà, ça marche.
- Nickel !
- Mais, euh, tu utilise quoi comme éditeur toi habituellement ?
- NEdit sous UNIX, et WordPad sous Windows ("mais des fois ça fait des caractères bizarres..."), pourquoi ?
- (depuis 10 ans !!!!!?????) ... Non, rien (n00b!).
La guerre des langages :
- Si je vous affirme qu'un marteau n'est pas une foi, niez, et priez.
- Si je prie, affirmez que la taille d'un animal n'est pas celle en laquelle je crois.
- Si je dis que l'avenir est incertain, affirmez que je deviens pire avec le temps.
Publié par Sobe à 20:35 1 commentaires
Tags : g33k, poésie, programmation, troll, web
lundi 17 décembre 2007
Plus de 100 visiteurs...
Petit message pour fêter le dépassement des 100 visiteurs uniques sur le blog (c'est fait depuis quelques jours, mais mieux vaut tard que jamais...). Au bout d'un peu plu d'un mois, on approche les 450 visites, et les 1400 pages vues. Les raisons qui amène des gens ici sont variées (le hasard ayant une belle part du gâteau) mais par Google, c'est beaucoup pour le Ruby (rassurant !), en particulier pour mes petits articles sur les tableaux, les piles et les files. Environ 67.3 % des visiteurs sont blondes à fort QI, et possède un animal redondant.
Comment je sais ça ? J'utilise Google Analytics. Sincèrement, sans être très calé, ça s'installe et s'utilise très facilement (en particuliers chez Blogger, évidemment...) et on a accès à une quantité d'informations importante (mais pas la couleur des cheveux en fait... les animaux oui par contre).
Tant qu'on est dans les applis ajoutées à ce blog, vous avez sans doute constaté que j'utilise également Google Adsense pour diffuser de la pub dans le second bandeau de droite et devenir multimilliardaire (ou plus si affinité...). Pour ceux que ça intéresse, deux trois petites infos à ce sujet. D'abord, il faut être majeur ou s'inscrire au nom de ses parents (ou tuteurs légaux, etc...) pour pouvoir utiliser ce service. Ensuite, au niveau installation, sur Blogger, c'est de l'ordre du quart d'heure, et encore, en lisant la plupart des textes que l'on saute habituellement. La rémunération se fait au clic sur la pub (le montant dépendant de l'annonce au moment du clic) et évidemment il est interdit de cliquer soi-même dessus, de faire un bot qui le fait tout seul, ou même de demander explicitement à ses visiteurs (ou à ses proches) de le faire (je ne vous le demande donc pas ^^). Apparemment Google est assez strict là-dessus...
Petite nouveauté aujourd'hui, je viens d'ajouter une syndication RSS par FeedBurner (appartenant également à Google... non, je taffe pas pour eux...) d'une part pour mieux être référencé (il paraît que ça aide, par un procédé qui m'échappe encore...), pour vous permettre de vous abonner plus facilement selon votre lecteur de flux et pour avoir une idée des abonnements effectifs (bizarrement, Analytics ne gère absolument pas cette partie du "trafic").
Deux liens vers des blogs d'aide/astuces/widgets pour Blogger :
- Les trucs et astuces pour Blogger (débuter, widgets divers...)
- Narrow Street (tag cloud / nuage de tags notamment)
Et surtout, bonne visite !
L'image de cet article est une fractale, issue de www.artdubonheur.com. On reparlera d'art numérique un de ces quatre...
Publié par Sobe à 22:29 0 commentaires
Tags : liens, sobe session, web
Ruby et YAML : la base de la base.
# Définissons un hachage :
console1 = {
:id => 0,
:name => "wii",
:path => "au magasin" ,
:tags => [:game, :nintendo, :move]
}
# dump : on l'écrit dans fichiertest.yaml
File.open('fichiertest.yaml','w') do |out|
YAML.dump console1, out
end
# On relit avec load
relecteur = open('fichiertest.yaml') do |input|
YAML.load input
end
# Et voilou
for i in relecteur
puts i[0].to_s + " => " + i[1].to_s
end
Publié par Sobe à 19:57 2 commentaires
Tags : code, pro, programmation, ruby
samedi 15 décembre 2007
Fortran : Coloration de graphe
Aujourd'hui, un peu de théorie des graphes en Fortran 90 ! (Je teste la coloration avec Rubyshyne en Fortran...)
Comment ?
Entrées-Sorties :
Ce programme prend en entrée la matrice du graphe à analyser, précédée du nombre de sommets (fichier tab.dat). Exemple :
6
0 1 1 0 0 0
1 0 1 0 1 0
1 1 0 1 1 0
0 0 1 0 0 1
0 1 1 0 0 0
0 0 0 1 0 0
Le code :
PROGRAM Coloration
IMPLICIT NONE
integer, allocatable :: A(:,:)
integer, allocatable :: Degree(:), AliasD(:), B(:), Color(:)
integer :: i, n, tmp, tmpD, ii, icolor
character(len=999) :: format_tab
character(len=6) :: motif = 'I1,1X,'
logical :: pas_adj
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! LECTURE DU GRAPHE
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
PRINT*, ' '
OPEN(UNIT=10, FILE='tab.dat', FORM='formatted', STATUS='OLD')
READ(10,'(I6)') n
PRINT*, 'Taille du graphe : ', n
Print*, ' '
ALLOCATE(A(n,n))
ALLOCATE(Degree(n))
ALLOCATE(AliasD(n))
ALLOCATE(B(n))
ALLOCATE(Color(n))
Color = 0
format_tab = '('
DO i = 1, n-1
format_tab = format_tab(1:(6*i-5))//motif
END DO
format_tab = format_tab(1:(6*n-5))//'I1)'
PRINT*, 'Matrice du graphe : '
DO i = 1, n
READ(10, format_tab) A(i, 1:n)
B(i) = i
PRINT*, A(i, 1:n)
END DO
PRINT*, ' '
CLOSE(10)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! TRI PAR DEGRE
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
DO i = 1, n
Degree(i) = SUM(A(i,1:n))
END DO
AliasD = Degree
ii = 1
DO WHILE (ii < n)
IF (AliasD(ii+1)>AliasD(ii)) THEN
tmp = B(ii)
tmpD = AliasD(ii)
B(ii) = B(ii+1)
AliasD(ii) = AliasD(ii+1)
B(ii+1) = tmp
AliasD(ii+1) = tmpD
IF (ii > 1) THEN
ii = ii - 1
ELSE
ii = 1
END IF
ELSE
ii = ii + 1
END IF
END DO
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! COLORATION
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Color(B(1)) = 1
DO icolor = 1, 4
ii = 2
DO WHILE (ii < n+1)
IF (Color(B(ii))==0) THEN
pas_adj = .TRUE.
DO i = 1, n
IF ((Color(i)==icolor).AND.(A(B(ii),i)/=0)) THEN
pas_adj = .FALSE.
END IF
END DO
IF (pas_adj) THEN
Color(B(ii)) = icolor
END IF
END IF
ii = ii + 1
END DO
END DO
!!!!!!!!!!!!!!!!!!!!!!!!!!
! RESULTATS
!!!!!!!!!!!!!!!!!!!!!!!!!!
PRINT*, ' '
PRINT*, 'Coloration : '
PRINT*, Color
END PROGRAM Coloration
Publié par Sobe à 11:48 0 commentaires
Tags : code, fortran, programmation, science
vendredi 14 décembre 2007
Rubyshyne : du source au "cute" HTML...
class Liste
attr_accessor :value, :next
@@name = "list"
def initialize (val, nekst = nil)
@value = val
@next = nekst
end
end
$glob = 56
a = Liste.new 1
b = Liste.new 0, a # Beaucoup !!!
erv = :ruby
puts "j'ai maaaaaal au #{erv}"
puts b.next.value
if a.val < b.val then
puts a.to_s
end
# J'aimerai que ça marche
Publié par Sobe à 17:59 0 commentaires
Tags : programmation, ruby
I luv' sneakers : German Scheme Serie
PickYourShoes
Publié par Sobe à 12:02 0 commentaires
Tags : sneakers
Un outil de présentation de code online - Syntax Highlighting
Un exemple (débile : le code planterait, mais il y a la plupart des choses à colorer en Ruby).
class Liste
attr_accessor :value, :next
@@name = "list"
def initialize (val, nekst = nil)
@value = val
@next = nekst
end
end
$glob = 56
a = Liste.new 1
b = Liste.new 0, a # Beaucoup !!!
puts b.next.value
if a.val < b.val then
puts a.to_s
end
# J'aimerai que ça marche
Pour info, quelques solutions en ligne :
Publié par Sobe à 00:17 1 commentaires
Tags : liens, programmation, ruby, web
mercredi 12 décembre 2007
Ruby : Argument d'un script
entrer récupérer une variable en entrée d'un script Ruby - argument d'un script Ruby - input for Ruby script - variable spéciale Ruby entrée script - special global variable in Ruby for script input - entry - program input - input entrée programme Ruby - argument en ligne de commande - argument console terminal shell Ruby - command-line arguments
testargv.rb :
puts "class : " + (ARGV.class).to_s + \
" ; size : " + (ARGV.size).to_s
for i in ARGV
puts "input : " + i.to_s + \
" ; class : " + (i.class).to_s
end
Lançons :
$ testargv.rb
#=>class : Array ; size : 0
$ testargv.rb 5
#=>class : Array ; size : 1
#=>input : 5 ; class String
$ testargv.rb 5 toto Foo 7.2
#=>class : Array ; size : 4
#=>input : 5 ; class : String
#=>input : toto ; class : String
#=>input : Foo ; class : String
#=>input : 7.2 ; class : String
Publié par Sobe à 18:05 3 commentaires
Tags : code, programmation, ruby
mardi 11 décembre 2007
50 ans du Fortran
Deux articles sur l'évènement :
- Sur PhysicsWorld.com (en) : Fortran Faces the Future at 50.
Since then it has evolved through many versions, each more powerful than the last, and even now Fortran is still the language of choice in many areas of physics.
- Dans le Courier du CERN (fr/en) : 50 Years of Fortran.
Finally, there is no need to be a religious extremist; these days, procedures in different languages can be intermixed (which will only become easier). Different subsets of applications can be written in the most appropriate language, e.g. Java for the web, and all can be glued together in a PYTHON framework.
Un "NPC" ("NON-Personal Computer !") dans les années 50.
Publié par Sobe à 18:43 0 commentaires
Tags : fortran, programmation, science
lundi 10 décembre 2007
Quels sont les langages de programmation des pro ?
- Langages de programmation (c'est de ça qu'on va parler, patience !)
- Editeurs de texte (Vi/Vim vs Emacs/XEmacs)
- IDE
- GUI
- Libre vs Propriétaire
- Windows vs Linux (vs Mac vs BSD vs ...)
- Surf vs Ski
- Internet Explorer vs Firefox (et les autres !)
- Perrier vs Perrier Citron
- MacDo vs Quick
- SuperNintendo vs Megadrive
- KDE vs GNOME
- ...
Salut les ptits poulets,
J'aimerais savoir quels langages il faut connaître quand on est pro
Merci d'avance, vous êtes tous très bô.
Kévin le n00b.
Quels sont les langages de programmation les plus utilisés et/ou demandés dans le monde du travail ?
Cependant, ce classement ne reflète pas forcément l'usage d'un langage donné dans le milieu professionnel. C'est pourquoi je vous propose un autre indice, cette fois basé sur les hits obtenus sur Monster.fr :
LE Classement (au 10/12/2007) :
Langage | Hits sur Monster | Classement | Classement TIOBE | ||
Java | 965 | 1 | 1 | ||
C | 675 | 2 | 2 | ||
C++ | 533 | 3 | 5 | ||
PHP | 391 | 4 | 4 | ||
ASP | 266 | 5 | n-c | ||
VB | 223 | 6 | 3 | ||
Javascript | 214 | 7 | 10 | ||
Perl | 149 | 8 | 7 | ||
COBOL | 91 | 9 | 15 | ||
Python | 53 | 10 | 6 | ||
Delphi | 38 | 11 | 11 | ||
ADA | 25 | 12 | 24 | ||
Assembleur | 15 | 13 | n-c | ||
Fortran | 8 | 14 | 22 | ||
Ruby | 5 | 15 | 9 | ||
Ocaml | 2 | 16 | 79 | ||
Erlang | 1 | 17 | 40 | ||
Haskell | 0 | 18 | 34 | ||
Prolog | 0 | 18 | 27 | ||
LISP | 0 | 18 | 17 |
Méthodologie :
Commentaires :
On voit clairement que certains langages ne sont pas vraiment à la mode en France : Ruby entre autres, et que d'autres sont assez sous-estimé par TIOBE (Fortran, ADA, COBOL). Ces langages ne sont effectivement pas "glamour" comme le Python, le Ruby ou l'Ocaml, mais ils ont fait leurs preuves, chacun dans leur domaine (respectivement : sciences, systèmes embarqués, gestion/finance).
Pas plus de commentaire sur la place sinistre détenue dans les deux classement par le Visual Basic (saymal !)...
Et l'apprentissage ?
MATMECA :
- Fortran 90
- C++
- En option : Java ("Calcul Haute Performance" i.e. calculs parallèles), Python (ajout de modules sur codes de calculs industriels)...
- ADA
- Langage assembleur
- PROLOG
- Java
- Javascript, PHP
- C
- LISP
- + SQL, Shell, HTML, XML
Publié par Sobe à 18:33 0 commentaires
Tags : liens, pro, programmation, troll