
French: 
Scala est un langage de programmation
il est maintenant de 13 ans. Ceci est Martin Odersky
professeur titulaire de l'École IC à l'EPFL,
et fondateur de la langue de programmation scala
il est une langue d'usage général
vous pouvez faire toutes sortes de choses avec Scala
il est utilisé pour de nombreuses applications différentes
en science, en open source,
dans l'industrie. Il fonctionne sur la machine virtuelle Java,
la machine virtuelle Java, mais ils sont maintenant aussi les versions
JavaScript et il y a une 3ème
qui est plus version prototype
pour une forme native Scala sur LLVM
Scala a été inventé en 2001 et depuis lors
le nombre d'utilisateurs a continué d'augmenter
son taux d'adoption a été l'un
des plus remarquables parmi
langages de programmation, bien que jusqu'à présent, il est moins Popolare
que les armes à feu vraiment grand
comme Java, Python ou PHP. Mais pourquoi Scala a commencé?
en premier lieu? La motivation originale

English: 
Scala is a programming language
it's now 13 years old. This is Martin Odersky
a Full Professor of the IC School at EPFL,
and founder of the scala programming language
it's a general-purpose language
you can do all sorts of things with Scala
it's used for many different applications
in science, in open-source,
in industry. It runs on the JVM,
the Java Virtual Machine, but they're now also versions
on JavaScript and there's a 3rd one
which is more prototype version
for a Scala native-form on LLVM
Scala was invented in 2001 and since then
the number of users has kept increasing
its adoption rate has been one
of the most remarkable ones among
programming languages, although so far, it is less populare
than the truly big guns
like Java, Python or PHP. But why was Scala started?
in the first place? The original motivation

French: 
était que nous voulions montrer
que la combinaison de la programmation fonctionnelle
et la programmation orientée objet
pourrait être pratique et puissant
J'ai fait des recherches en quelque sorte
à l'intersection d'impératif
orienté objet et fonctionnel pendant un certain temps
avec des papiers de peuplier et calculi
et des choses comme ça, puis
à un moment donné, nous avons fait un langage appelé entonnoir
qui était comme un langage plus de recherche
un langage minimal
d'un calcul qui a été appelé calcul joindre
à ce moment, et d'une ampoule a montré que
oui, en principe, c'est intéressant
et agréable, mais il y avait beaucoup de choses manquent
il était donc pas vraiment une langue très pratique donc alors
la prochaine itération est-à-dire: Eh bien, nous allons choisir
quelque chose qui est pratique et
qui est devenu Scala. L'idée vraiment grand
de Scala est vraiment la fusion
de deux façons différentes d'écrire du code
En gros, vous pouvez soit les fonctions de liste
pour ordinateur de fonctionner et lui dire

English: 
was that we wanted to show
that the combination of functional programming
and object-oriented programming
could be practical and powerful
I've been researching sort of
at the intersection of imperative
object-oriented and functional for a while
with calculi and poplar papers
and things like that, and then
at some point, we did a language called funnel
which was like a more research language
a minimal language
out of a calculus which was called join calculus
at the time, and funnel showed that
yes, in principle that's interesting
and nice, but there were lots of things lacking
so it wasn't really a very practical language so then
the next iteration was to say: Well, let's pick
something that's practically and
that became Scala. So the truly big idea
of Scala is really the merging
of two different ways to write code
basically you can either list functions
for computer to run and tell it

French: 
dans quel ordre il doit exécuter les
ou vous pouvez organiser votre code
autour de la définition des objets et la manière
ces objets interagissent entre eux
bien sûr tout code à base de fonction peut être traduit
en un code orienté objet
et vice versa
mais certains codes sont plus faciles à écrire
d'une manière, alors que tous les codes sont plus faciles
pour écrire dans l'autre sens
motivation initiale de Scala et principal point de vente
est la capacité de faire les deux
dans une seule langue de programmation. Et nous allons creuser plus
sur cette question dans une vidéo future
pour l'instant, il convient de mentionner que Scala a d'autres points de vente
il a un temps d'exécution solide
il fonctionne sur la machine virtuelle Java qui est très largement utilisé
et la plate-forme solide qui a
transparente interopérabilité avec Java
Java est un langage populaire
c'est un autre point de vente pour ce
Une autre caractéristique intéressante de Scala est que
beaucoup de réflexion a été mis
pour permettre le calcul simultané et parallèle
Je pense que l'autre point de vente
est vraiment que si vous pouvez commencer

English: 
in which order it should execute them
or you can organize your code
around the definition of objects and the way
these objects interact with one another
of course any function based code can be translated
into an object-oriented code
and vice-versa
but some codes are easier to write
in one way, while all the codes are easier
to write in the other way
Scala's original motivation and main selling point
is the ability to do both
in a single programming language. And we'll dig more
into this issue in a future video
for now it's worth mentioning that Scala has other selling points
it has a solid run time
it runs on the JVM which is a very widely used
and solid platform that has
seamless inter-operability with Java
Java is a popular language
that's another selling point for it
another interesting feature of Scala is that
a lot of thought has been put
to allow for concurrent and parallel computing
I think the other selling point
is really that if you can start

English: 
with this java-like programming
and progress to the more functional thing
and the language supports you all the way
for doing that. It's not like
a big jump where you have to learn
something completely new, and after six months,
maybe you resurface and are a born-again programmer or something like that
Scala doesn't work that way
Now, inventing a new programming language
is very much like inventing language
you need to define a vocabulary and grammar
to know how the terms of the vocabulary
can be combined. But to make
the programming language popular
Martin Odersky and his collaborators also had to
develop tools, so that computers and humans
can more easily interpret
and interact with the programming language
these tools are called compilers and IDEs
so the compiler is the tool
that analyzes your language
it will take your program and it will, in the end,
produce machine code that the computers

French: 
avec cette programmation java comme
et le progrès à la chose plus fonctionnelle
et la langue que vous soutient tout le chemin
pour le faire. Ce n'est pas comme
un grand saut où vous devez apprendre
quelque chose de complètement nouveau, et au bout de six mois,
peut-être vous refaire surface et êtes né de nouveau programmeur ou quelque chose comme ça
Scala ne fonctionne pas de cette façon
Maintenant, inventer un nouveau langage de programmation
est très semblable à inventer la langue
vous devez définir un vocabulaire et la grammaire
de savoir comment les termes du vocabulaire
peuvent être combinés. Mais pour
le langage de programmation populaire
Martin Odersky et ses collaborateurs ont également
développer des outils, afin que les ordinateurs et les humains
peut interpréter plus facilement
et d'interagir avec le langage de programmation
ces outils sont appelés compilateurs et IDEs
de sorte que le compilateur est l'outil
qui analyse votre langue
il prendra votre programme et il sera, à la fin,
produire du code de la machine que les ordinateurs

English: 
can then execute, and on the way,
it will analyze a program to check whether
there are any errors in it. And this is very important
because when you're coding
you are going to make errors. A good compiler
pinpoints errors, and hints at possible fixes
that's what the compiler does
and an IDE that's a short name for
integrated development environment
that's essentially the editor which lets you
essentially do the editing of your program
it helps you finding
all definitions or completions, so you can do
control space and then it will
insert the next method for you
these sort of helpers and to work an IDE
actually needs a compiler inside it
to understand the program
that you're editing. Now, said like this,
it almost sounds easy and basic
but developing a compiler and an IDE
actually represents a huge amount of work
both of these are
very sophisticated tools. The compiler

French: 
peut alors exécuter, et sur le chemin,
il analysera un programme pour vérifier si
il y a des erreurs qu'il contient. Et cela est très important
parce que quand vous codez
vous allez faire des erreurs. Un bon compilateur
met en évidence des erreurs et des conseils à des corrections possibles
c'est ce que le compilateur
et un IDE qui est un nom court pour
environnement de développement intégré
qui est essentiellement l'éditeur qui vous permet de
essentiellement faire le montage de votre programme
il vous aide à trouver
toutes les définitions ou les achèvements, vous pouvez donc faire
l'espace de commande, puis il sera
insérer la méthode suivante pour vous
ce genre d'aides et de travailler un IDE
a réellement besoin d'un compilateur à l'intérieur
de comprendre le programme
que vous modifiez. Maintenant, dit comme ça,
il semble presque facile et basique
mais le développement d'un compilateur et un IDE
représente en fait une énorme quantité de travail
Ces deux éléments sont
des outils très sophistiqués. le compilateur

French: 
est à peu près cent mille lignes de code
quelque chose comme ça, et un IDE est
beaucoup plus que cela.
langue qui ne change pas la façon
vous pensez à la programmation ne vaut pas l'apprentissage
et croyez-moi, après avoir appris Scala,
il va changer la façon dont vous programmez
programmation fonctionnelle et orientée objet
la programmation jusqu'à alors, pas vraiment
été bien combiné. Il y avait
quelques tentatives, mais ils ne sont pas vraiment réussi
et Scala est une sorte de
la première langue dominante qui fait que

English: 
is roughly a hundred thousand lines of code
something like that, and an IDE is
much bigger than that.
language that doesn't change the way
you think about programming is not worth learning
and trust me, after learning Scala,
it will change the way you program
functional programming and object-oriented
programming up to then, haven't really
been combined much. There were
some attempts, but they were not really successful
and Scala is sort of
the first mainstream language that does that
