Bjarne Stroustrup: The 5 Programming Languages You Need to Know | Big Think

Sdílet
Vložit
  • čas přidán 12. 06. 2011
  • Bjarne Stroustrup: The 5 Programming Languages You Need to Know | Big Think
    "Nobody should call themselves a professional if they only knew one language."
    New videos DAILY: bigth.ink/youtube
    Join Big Think Edge for exclusive videos: bigth.ink/Edge
    ------------------
    Bjarne Stroustrup is a computer programmer most famous for having designed and implemented the computer programming language C++, one of the most widely used programming languages in the world. His book "The C++ Programming Language" is the most widely read book of its kind and has been translated into at least 19 languages. In addition to his five books, Stroustrup has published hundreds of academic and popular papers. He currently holds the College of Engineering Chair in Computer Science at Texas A&M University.
    ------------------
    TRANSCRIPT:
    Question: What are the five most important languages that programmers should know?
    Bjarne Stroustrup: First of all, nobody should call themselves a professional if they only knew one language. And five is a good number for languages to know reasonably well. And then you’ll know a bunch, just because you’re interested because you’ve read about them because you’ve wrote a couple of little programs like [...]. But five isn’t a bad number. Some of them book between three and seven.
    Let’s see, well my list is going to be sort of uninteresting because it’s going to be the list of languages that are best known and useful, I’m afraid. Let’s see, C++, of course; Java; maybe Python for mainline work... And if you know those, you can’t help know sort of a little bit about Ruby and JavaScript, you can’t help knowing C because that’s what fills out the domain and of course C-Sharp. But again, these languages create a cluster so that if you knew either five of the ones that I said, you would actually know the others. I haven’t cheated with the numbers. I rounded out a design space.
    It would be nice beyond that to know something quite weird outside it just to have an experience, pick one of the functional languages, for instance, that’s good to keep your head spinning a bit when it needs to. I don’t have any favorites in that field. There’s enough of them. And, I don’t know, if you’re interested in high-performance numerical computation, you have to look at one of the languages there, but for most people that’s just esoteric.
    ------------------
    Follow Big Think here:
    📰BigThink.com: bigth.ink
    🧔Facebook: bigth.ink/facebook
    🐦Twitter: bigth.ink/twitter
    📸Instagram: bigth.ink/Instragram
    📹CZcams: bigth.ink/youtube
    ✉ E-mail: info@bigthink.com
  • Věda a technologie

Komentáře • 2K

  • @meezookee8491
    @meezookee8491 Před 4 lety +1191

    He actually deserves to say "C++, of course".

    • @zes3813
      @zes3813 Před 3 lety

      wrgg

    • @TheHippyHoppyHippo
      @TheHippyHoppyHippo Před 3 lety +17

      ofc he did, because it's the language that he created, so obvs he's gonna put it at the top of the list

    • @cpzd83
      @cpzd83 Před 3 lety +60

      @@TheHippyHoppyHippo yes but also c++ is arguably one of the most important languages to learn

    • @kensei4237
      @kensei4237 Před 3 lety +13

      @@cpzd83 and one of the most powerful if not the most powerful one (not talking about assembly)

    • @cpzd83
      @cpzd83 Před 3 lety +3

      @Cruz Jayson soo this is how you bots work huh?

  • @danbuffington75
    @danbuffington75 Před 4 lety +763

    00:47 "Python for mainline work." Talk about predicting the future. This video was 9 years ago.

    • @Loug522
      @Loug522 Před 3 lety +79

      I used to have some prejudice against Python for being so easy to learn and ignored that programming language for years, then I decided to do some research and learn and holy f... what a awesome language, it even made me become interested in data science/machine learning.

    • @danbuffington75
      @danbuffington75 Před 3 lety +10

      @@Loug522 me too. I really didn't take it seriously.

    • @JJSogaard
      @JJSogaard Před 3 lety +18

      @@Loug522. Yeah, I am currently learning Python as a hobby. It's really unusual the a good beginner tool in a given field is capable enough to do a majority of hobby projects you can think of. When I get properly comfortable in Python, I will almost certainly learn another language. But it's still nice not to feel limited in my first language.
      I am still considering what my second language is going to be though.

    • @Chertograad
      @Chertograad Před 3 lety +9

      I know, right? Python can do so much, it's easy to learn, it's well-supported and documented, it's used by many known large ICT companies like Microsoft, Facebook, Google and so on. You can do scripts, you can do server-side code, you can do small games (pygame etc.), you can do GUI-apps (pyqt, wxpython, tkinter etc.), you can do mobile games (kivy) although that isn't too common yet but I'm sure it will be since python has skyrocketed in popularity in the recent years. And then there's Dash that came a few years ago so if someone is intrigued by React but doesn't like JavaScript, then no problem.
      I think Python is in a similar situation with JavaScript: both have been increasingly popular for such a long time that there's been some real innovation and cool new project rising. For instance JS was first just a client-side browser language. Now it's also used in servers, also used to make mobile apps and also used to make desktop apps.
      My prediction is that the same thing will happen to Python and it's already happened to some degree. It will get more and more functionality in the upcoming years.
      The only thing holding Python back is its speed but even that isn't a huge problem unless you're doing heavy 3D games with physics etc. since people have SSD, powerful processors etc. and if your code is running on a web-server, then the limiting factor is the internet connection, not your processor or harddrive. If your internet is like 100mbps, then that's the max. speed for stuff to happen so you won't achieve any nanosecond results anyway :D

    • @bobbycrosby9765
      @bobbycrosby9765 Před 3 lety +17

      Python was already fairly popular 9 years ago. And already one of Google's blessed languages.

  • @Zer0Mem0ry
    @Zer0Mem0ry Před 9 lety +2214

    C/C++, C#, Python, English.

    • @jigglywiggly6479
      @jigglywiggly6479 Před 9 lety +148

      Lol.. I would choose English first....

    • @SpyzacFilms
      @SpyzacFilms Před 9 lety +166

      VirtualCoder who needs language when you speak binary :D

    • @ToveriJuri
      @ToveriJuri Před 8 lety +45

      VirtualCoder
      Haha. This reminds me of a guy who wanted to learn programming, but knew zero English and wasn't really interested in learning it. Everyone pretty much just told him to give up and find something else to do.

    • @KingCitaldo125
      @KingCitaldo125 Před 8 lety +9

      VirtualCoder can you make a game with English ?

    • @Zer0Mem0ry
      @Zer0Mem0ry Před 8 lety +57

      KingCitaldo125 If you haven't noticed yet, all high level languages are based on it.

  • @souhailkaoussi6415
    @souhailkaoussi6415 Před 8 lety +1009

    If you aren't going to solve a problem using a programming language, don't learn it, most people think if they finish a codecademy track, they will be "programmers", programming is about problem solving, and not just being able to write a function in a given programming language.

    • @kingarkamani1455
      @kingarkamani1455 Před 8 lety +4

      +Souhail Kaoussi to solve problems like what? ,and what program lang you advise for me?

    • @HenrikVendelbo
      @HenrikVendelbo Před 8 lety +42

      +Souhail Kaoussi Not sure what you mean as your sentence is ambiguous. Languages have idioms. Being forced to try different idioms is very healthy. Java and Python are for instance very different in how solutions are structured. If you know only one of them you will struggle with whole domains of code bases and you will probably make some poor choices when asked to solve a real problem.

    • @esmondlucan4269
      @esmondlucan4269 Před 8 lety +4

      So CORRECT,IT ABOUT THE PROBLEM REDUCTION THRU ALGORITMS AND PROGRAM DATA

    • @stefan1draganov
      @stefan1draganov Před 8 lety +8

      +Souhail Kaoussi Ok, I have solved some problem. Now how to translate it in the form of a program. And that's another problem. Get it?

    • @DanielCardin_ATX
      @DanielCardin_ATX Před 8 lety

      Don't be difficult.

  • @ysmtek
    @ysmtek Před 9 lety +109

    For some weird reason I find his voice soothing. I wonder what it would sound like if he would do "The C++ Programming Language" audio book, including the examples.

    • @esmondlucan4269
      @esmondlucan4269 Před 8 lety +7

      He HAS A Very Calm and Composed Temperment

    • @Padeir0
      @Padeir0 Před 3 lety +1

      it would be a year long

    • @PsycosisIncarnated
      @PsycosisIncarnated Před 2 lety

      @@esmondlucan4269 Hes worth 25+ million dollars. He probably has a very very chill life, probably wakes up, makes coffe, goes and sits by his garden and codes without anyone to bother him.

  • @Novascrub
    @Novascrub Před 10 lety +76

    What most of us find is that by learning how to get things done in a vastly different language, you learn a deeper understanding of your primary language. Its strengths, its limitations, its biases, and the ways it has biased your thoughts and designs. All this and you learn new and useful techniques to apply back home.
    I personally didn't REALLY get English grammar until I took a foreign language. It's really the same. Perspective begets wisdom.

    • @codewithjc4617
      @codewithjc4617 Před 2 lety +7

      I am replying this 8 years later but what you say is so true! Lots people say that once you know one language you'll learn many more, but almost nobody says that when you understand how to do something in many different ones you'll truly comprehend your primary language in a really deep level.

    • @matasv07
      @matasv07 Před 2 měsíci

      I'm a Node.js dev now, I changed from C# and .Net 5 years ago. And now, I'm learning Fortran and Golang in university. Recently, at my job I just got in touch with Java. Some years ago I was too arrogant to accept that I'd learn such "old and ugly" languages like Fortran and Java. Now I can say that all of them are cool, and I really like all of them. You're too right: Perspective begets wisdom.

  • @silararkimov8343
    @silararkimov8343 Před 7 lety +59

    I love how he says "keep your head spinning when it needs to", exactly what some people need to hear:D

  • @nERVEcenter117
    @nERVEcenter117 Před 8 lety +91

    For me, it's a managed language (C# or Java), a compiled high-performance language (C, C++, or D), an interpreted script language (Python, Ruby, or Lua), a functional language (I like ML-based ones like F# and OCaml), and for sure have a suite of web technologies under your belt (JavaScript, CoffeeScript, or TypeScript; HTML or any of its template engines like Jade; CSS or it derivatives such as SASS or SCSS; and a serialization format such as XML, YAML, JSON, etc.). It's also good to know a LISP (Clojure is a great place to start). A good programmer has a wide swathe of experience and is always willing to learn something new. Clinging to one language in the fetal position and resisting new things only harms you long-term.

    • @RonWolfHowl
      @RonWolfHowl Před 8 lety +1

      “managed language”?

    • @napalm5
      @napalm5 Před rokem +5

      @@RonWolfHowl Probably has a strong ecosystem of libraries

    • @josephp.3341
      @josephp.3341 Před rokem +1

      Agree with this take. Learning different types of languages broadens your knowledge and makes you a better programmer in general.

    • @fennecbesixdouze1794
      @fennecbesixdouze1794 Před 10 měsíci +3

      ​@@RonWolfHowl The term "managed language" refers to language implementations where the code is primarily executed within a heavily managed runtime environment, such as the JVM or the Microsoft CLR.

    • @AllanCartagenas
      @AllanCartagenas Před 7 měsíci

      Java is also an interpreted language, hence, JVM.

  • @photoallergic
    @photoallergic Před 12 lety +51

    As he said: While learning one language, you usually learn some others implicitly. This is very true for Java and C#. The important / difficult part is getting familiar in an API.

    • @Abon963
      @Abon963 Před rokem +3

      Haha it’s been 10 years but can you tell me what is API?

    • @fennecbesixdouze1794
      @fennecbesixdouze1794 Před 10 měsíci +5

      @@Abon963 I think what he means is getting familiar with using the common libraries in the ecosystem.

  • @eventhisidistaken
    @eventhisidistaken Před 10 lety +574

    ...in addition to c++, Java, Javascript, Ruby and c#, I also recommend English.

    • @charlesmcdowell9436
      @charlesmcdowell9436 Před 10 lety +4

      Lol.

    • @dreamingacacia
      @dreamingacacia Před 9 lety +1

      agreed with you, but for me if I can communicated with many people
      that's great and enough...don't need to learn about professional language for English :)

    • @juliantheivysaur3137
      @juliantheivysaur3137 Před 9 lety +28

      No woris m8 . I alredy kno how to egnlisch .

    • @DivineOwl
      @DivineOwl Před 9 lety +5

      Нахуй инглиш! ^_^
      MyMind.english=null;

    • @barutelecom
      @barutelecom Před 9 lety

      ¿Y a quién le importa el inglés? ¬¬'

  • @MrCmon113
    @MrCmon113 Před 7 lety +213

    Kinda depends on what you are.
    A programmer? A scientist? An engineer? A mathematician?

    • @xtremeloverboi6066
      @xtremeloverboi6066 Před 4 lety +20

      Programmer: Python
      Scientist: Python
      Engineer:Python+others
      Mathematician: Matlab/Python

    • @embeddedbastler6406
      @embeddedbastler6406 Před 4 lety +108

      @@xtremeloverboi6066 good luck running Python code on a 8bit microcontroller.

    • @xtremeloverboi6066
      @xtremeloverboi6066 Před 4 lety +15

      @@embeddedbastler6406 shit I have to go for assembly or C

    • @valizeth4073
      @valizeth4073 Před 4 lety +37

      ​@@xtremeloverboi6066 Engineers and programmers don't have hours on hours to debug code because python is interpreted, compile time errors are infinitely easier to handle. There are multiple areas where python isn't well suited.
      Games - C++ > Python
      Game engines - C++ > Python
      Embedded systems - C++ > Python
      Real time heavy applications - C++ > Python
      Powerful neural networks - C++ > Python
      Reliable and fast backend servers - C++ > Python
      Operative systems - C++ > Python
      Operative systems' kernels - C++ > Python
      Hardware drivers - C++ > Python
      Fast GUI applications, namely native ones, e.g for Desktop Environments - C++ > Python
      Web browsers - C++ > Python
      Compilers - C++ > Python
      Media access - C++ > Python
      Graphical animation - C++ > Python.
      Python isn't a *good* language, it's just simple and fast to *develop in*. The only reasons why people use it "everywhere" is because they don't know any other languages. Data scientists aren't programmers, only programmers and engineers actually use what their area of work truly require.

    • @xtremeloverboi6066
      @xtremeloverboi6066 Před 4 lety +2

      @@valizeth4073 Thanks for the reply man. I myself don't code much in python. I am a full stack developer but seldom use Django. Although I admire how much they speed up the development process. C++ is much much faster than Python performance wise. Also I don't believe in one size fits all perfectly. It may fit but it might not perform that well.

  • @insect212
    @insect212 Před 9 lety +609

    Why am I not surprised he picked c++?

    • @dreamingacacia
      @dreamingacacia Před 9 lety +52

      because he's the one who created it :p

    • @insect212
      @insect212 Před 9 lety +57

      มนตราวายุ ร่วงโรยดุจสายฝน Very good sir. You win an internet point.

    • @dreamingacacia
      @dreamingacacia Před 9 lety +22

      Brock X yay ! finally I got it

    • @edgargil9900
      @edgargil9900 Před 9 lety +3

      มนตราวายุ ร่วงโรยดุจสายฝน Congratrs!!!

    • @TheGlario
      @TheGlario Před 9 lety +5

      perhaps he thought "yeah I must to defend my fucking languaje".

  • @MsJavaWolf
    @MsJavaWolf Před 5 lety +6

    I agree 100%. One thing that is not really that necessary, but I think is really cool when you already are a decent programmer is to also look into one assembly language. It will most likely not be necessary for your job, but I found it pretty cool.

  • @webiplus
    @webiplus Před 9 lety +450

    if you can learn C or Java to a level of complete understanding then you can learn anything. I spent 5 years studying/using the 2.
    Javascript took me a week to learn and Python took me less than a month.
    Languages are tools, use the correct tool to build the correct parts of your system.

    • @Bliss..
      @Bliss.. Před 9 lety +111

      Javascript does NOT take a week to learn. :) Especially if you are comming from a classically inherited language. It gives you the illusion that it's simple, but if you want to create trully powerful and vast applications with it it requires a lot of literature to be studied.

    • @anismatar
      @anismatar Před 9 lety +13

      blissB2 Exactly, I am still trying to learn Javascript after a career of using myriad of languages including C++, Java, VB, PL/SQL, even COBOL. I discovered Javascript can surprise you the way no other language can. Maybe it is because of its C syntax people expect it to behave C'ish and when it gives crazy errors we accuse it of being immature while actually our learning process of it was immature.

    • @Bliss..
      @Bliss.. Před 9 lety +19

      Anis Matar Indeed. JavaScript may be the most powerful language at this very moment. It's aplicabiltiy on the client side and on the server side is vast. The node environment is crazy fast, works wonders with the very powerful and reliable nginx http server and allows for huge and powerful apps to be made even if it is single threaded .However you can always simulate a multi-threaded environment in node just by..starting a new node execution process. The beautiful thing about developing in JavaScript are the libraries and frameworks. There are thousands of them. And being able to construct a project with tools like npm (equivalent to ruby gems but imho more powerful) and task runners that automate a lot of the process, like Grunt and Gulp is just dreamy.
      The only language you can use to program rich applications, REST applications while programming the web browser. The synergy between server side JavaScript and client side JavaScript can be very well noticed in the socket io framework as well as in many others.
      And Microsoft took a step forward.You can program native applications to be run in the windows 8.1 and 10 environments using only HTML5/CSS3/JavaScript on a browser-like-platfform that behaves almost as rapid as a native app.
      And whats even more beautiful are projects like Phonegap which allow you to do basically the same thing..but for handheld devices running IOS, Android and Windows Phone. Compiling an HTML5 application to run 'natively' on such a platform is only one click away. And you need not know languages like Java, C# and Objective-C to program your dreamy app.
      And there is a lot more. :)

    • @anismatar
      @anismatar Před 9 lety +5

      blissB2 You should also check Facebook's React and React native which makes new generation of very capable Javascript hybrids for mobiles and tablets possibly replacing cumbersome Phonegap.
      If you program web, then Javascript is the only one language needed and actually on client side there is no other anyway. For node,js one can utilize concurrent clusters for parallelism (not multithreading, but concurrent) and on the client side if anything blocks UI then it is most probably an excellent case for concurrent web workers. That combined with today's amazing speed of Javascript engines (quarter or half the speed of Java for example) makes it an excellent technology to invest your time and energy in.
      However, one should be clear Javascript has its intended purposes but it will not replace Java and .net C# for business applications. Most probably it will complement the existing investments for speedy web interfaces and social networking but those languages are more suited for maintenance of behemoth sized business applications.
      C++ on the other hand, maybe it is used by one or two programmers in a thousand for actual low level work (near the kernel) but I really don't see how can anyone recommend it for business applications knowing how many nightmarish crashes people suffered in the past due to its uncontrollable pointers operations.

    • @Bliss..
      @Bliss.. Před 9 lety

      Anis Matar !

  • @gzsingh1435
    @gzsingh1435 Před 5 lety +5

    the legend himself..........love his calm personality

  • @chris4a970c
    @chris4a970c Před 11 lety +11

    That would depend upon the time when you initially started programming. I'm 43 and have been programming since age 12. The difference between that time and the current, is RAD. These IDE types allow the developer to deploy a project across many native code based using one language. So, today you're correct in that assumption; however, back when I came around you had to do everything yourself. Rapid Application Development has its perks, but decreases the roundness of the programmer.

  • @CarterColeisInfamous
    @CarterColeisInfamous Před 11 lety +6

    i had this guy as a professor... it was awesome

  • @mattt2684
    @mattt2684 Před 5 lety +7

    My top picks: C/C++, Go, Rust, Python, JavaScript
    Honorary Mentions:
    - Java
    - C#
    - Basic Shell Scripting

    • @windunursetyadi
      @windunursetyadi Před 3 lety +1

      Arguably, you could swap JavaScript with the former two of your honorary mentions

  • @2Cerealbox
    @2Cerealbox Před 9 lety +14

    Bjarne Stroustrup looks like in a movie when they have to make the lead character old for a scene or two and put a bunch of makeup on them, but it still just looks like a young person in make-up rather than a real old person.

  • @corybuczkowski8784
    @corybuczkowski8784 Před 10 lety +6

    It really depends on what you want to do. I'm in my final semester before I graduate with my Bachelor of Science in Application Development. While there are fundamental differences such as garbage collector in Java. Java/C++/C are all very similar languages. Java being important if your developing for android or oracle based systems. However, if your doing web development - This is entirely seperate category. Although you'll find PHP easier to learn after C++.

  • @xMrJanuaryx
    @xMrJanuaryx Před 7 lety +4

    Here's my list:
    Assembly/VHDL (some type of HDL) so critical, must be your strong point. Know this better than any of the others.
    C
    Python
    Java
    Haskell

  • @critstixdarkspear5375
    @critstixdarkspear5375 Před 5 lety +7

    “I haven’t cheated with the numbers. I rounded out a design space” Bjarne brining Boolean to the real world.

  • @cedrix57
    @cedrix57 Před 6 lety +2

    6 languages for me
    C++ / Qt5 (for most of my apps)
    Python (for easy quick scripts)
    Html / css / javascript
    R (for quick stats)

  • @marcosfrankowicz
    @marcosfrankowicz Před 4 lety

    SmallTalk to learn the originals concepts of OOP: encapsulation, isolation, decoupling, modularity, reusability, generics etc. Lisp to learn about metaprogramming, recursive data structures and how to process/construct/descontruct then, and other common functional stuff. Erlang to learn to deal with concurrency problems in a elegant and powerfull way, and more functional stuff. C to learn the do it yourself stuff. Assembly to learn the hardware stuff. (Bonus: Rust to learn a cool contemporary language that have a compiler that hates you but you love it anyway)

  • @rteja764
    @rteja764 Před 4 lety +36

    alone c++ will take half of your youth to master it!

  • @ViktorEngelmann
    @ViktorEngelmann Před 5 lety +4

    C++, C#, Java, Prolog, Haskell are my 5 picks

  • @knightoflambda
    @knightoflambda Před 11 lety +1

    Oh thank you! I didn't know if I was going senile and inventing things in my head; I had this doubt that there is a non TC language out there, but I didn't know what it was or what it did. You're absolutely right, I stand corrected.

  • @venim1103
    @venim1103 Před 9 lety

    Well the languages I've noticed to be most useful in my field of study are:
    Assembly (not much for coding but underline understanding and maybe decoding and debugging),
    C,
    C++,
    Python (for simulation softwares) and
    VHDL (Verilog would be easier to learn probably but it reminds me so much of C that it gets me confused as VHDL is a dataflow language and not a procedural language like C.)

  • @punkxxt
    @punkxxt Před 8 lety +193

    Guys, do you recommend Rosetta Stone to learn this languages?

    • @thePronto
      @thePronto Před 6 lety +33

      You could get a job in Indonesia, if you learn Javanese.

    • @opiniondiscarded6650
      @opiniondiscarded6650 Před 5 lety +1

      this.

    • @NileAagard
      @NileAagard Před 5 lety +2

      At this point I would not recommend Rosetta Stone for learning any languages, not since the program went solely online. Mind that I'm trying to learn Japanese with that software, but my copy is from before that design mistake.

    • @sebastianmorataboada9795
      @sebastianmorataboada9795 Před 5 lety +2

      Coincidentally Rosseta _Code_ has several sample programs in several languages

    • @MKMK-bj2sk
      @MKMK-bj2sk Před 5 lety +4

      Google translate is better

  • @Pvsmuntje
    @Pvsmuntje Před 11 lety +8

    I think C# will help you a lot to understand programming languages and it will keep you motivated as well, because the things you can do with the amount of code you have to write and understand is relatively little.

    • @hwstar9416
      @hwstar9416 Před rokem +3

      That's its problem. C is the way to go since it doesn't hide anything from you and forces you to learn how everything actually works.

  • @Asto508
    @Asto508 Před 10 lety

    Well, understanding memory addresses and referenced instructions certainly helps with grasping the concept of pointers and function calls. Else you leave a black magic hole between the HLL and the actual underlying machine it runs on.

  • @none_of_your_business
    @none_of_your_business Před 10 lety +1

    It really depends what you want to work with. If you want to develop android then you'll need a good grip on Java. If you want to write device drivers then C is the way to go. If you want to program Robots, a basic understanding of C++ is quite enough, if you know how to handle classes, structures and pointers you're good enough to program just about any robot. I'm planning on getting a fair grasp on Python somewhere in the near future because I've seen it used by a number of companies and it has done the job quite well, the terminal application I use is written in Python and the functionalities it has are just amazing (Terminator, for those interested). But yeah it really depends on what you plan on working with. It's good to know as many languages as possible, you never know who you get as an employer :D

  • @alvisc2002
    @alvisc2002 Před 6 lety +185

    the only guy i know with very little hair who has Way too much HAIR!!!

  • @nthmost
    @nthmost Před 11 lety +5

    Prominent examples of mostly-"functional" programming languages would be Haskell, Scala, and OCaml, but it's more complex than that, because other languages like Python and JavaScript can be used "functionally" as well.
    StackOverflow has a page entitled "why functional languages" with a good discussion. (CZcams won't let me post the link here.)

    • @fennecbesixdouze1794
      @fennecbesixdouze1794 Před 10 měsíci

      Commonly stated but hogwash. Functional languages are fundamentally different way of programming, not just another style. Being able to write map and reduce or using various lodash utilities does not functional programming make.

  • @benjaminbrohmer8866
    @benjaminbrohmer8866 Před 9 lety

    Depending of what you are doing:
    For me a lot more important than C++ Java are:
    Python (incl. numpy/scipy) package, R, sed and Shell.
    Perhaps there will come a point when I will need SQL.

  • @ATLMember
    @ATLMember Před 11 lety

    Yes... thank you for double commenting. I get your guys' point, it just seems like a trivial distinction in this context. And I don't know if you can calculate 5 + 5 in HTML since I barely know it; you could certainly call a javascript function to do it.

  • @yoanadimitrova8760
    @yoanadimitrova8760 Před 7 lety +143

    Wow, Bjarne advocating that you should learn Java and Python... now I've seen it all..

    • @qwertyashish
      @qwertyashish Před 7 lety +21

      I know english, hindi, telugu, punjabi which language is java?

    • @arifp5524
      @arifp5524 Před 7 lety +35

      ashish singh java is island language in indonesia

    • @qwertyashish
      @qwertyashish Před 7 lety +1

      @Jonah Jameson, I would focus on you if you were a girl.
      @Arif, java land :D

    • @arifp5524
      @arifp5524 Před 7 lety

      ya java land

    • @rup7591
      @rup7591 Před 7 lety

      ashish singh You are a wise man .

  • @magletters
    @magletters Před 9 lety +11

    Instead of programming language, I think a better suited comment would be which paradigm e.g. functional, OO, procedural. Understanding the paradigm well will make understanding language secondary.

    • @ToveriJuri
      @ToveriJuri Před 8 lety +1

      the Infidel
      Good learning sources of these languages also teaches their main paradigm and more.

    • @MrCmon113
      @MrCmon113 Před 6 lety +2

      the Infidel
      Got that covered in two semesters of CS: Haskell, Assembler (SPIM) and Java.

    • @xtremeloverboi6066
      @xtremeloverboi6066 Před 4 lety

      @@MrCmon113 I Hate Haskell.

  • @salkdjfasldkfjsdlk
    @salkdjfasldkfjsdlk Před 9 lety +2

    Yeah, I hear Bjarne knows a thing or two about programming so I'm going with his statement that 3-7 is a good range. Many people can have a very long and profitable career knowing only three. Thing is though, over the years, which three will change.

  • @georganatoly6646
    @georganatoly6646 Před 3 lety +1

    In 2020, descending order: JavaScript (also implies HTML, CSS), C#/Java (C# also implies PowerShell), Python, C++ (does not imply C(from my experience with those who claim to be "C/C++" programmers - I've found if someone is actually familiar with both they consider them as separate languages)), SQL (implies any variant).

  • @daver1964
    @daver1964 Před 11 lety +6

    He explicitly said "pick one of the functional languages".

  • @morpher44
    @morpher44 Před 11 lety +35

    In college I learned "Pascal", which was suppose to be the "language of the future". I also learned Basic, C, Fortran, Snobol, LIPS, Algol, a little Ada, etc. Over the years I only ever ended up using C for my career, doing mostly embedded programming. I have been exposed to C++, but wouldn't call me self adept in that language. I've learned JAVA and love it. My point, I guess is that some languages, over time, will die away in popularity, and others will have longevity.

    • @SonitPL
      @SonitPL Před rokem +1

      and how it is now?

    • @morpher44
      @morpher44 Před rokem +2

      @@SonitPL depends on the project. Android, for cell phones, for example, uses many different languages in the same project. C/C++ is best for embedded, but then you can bridge over to other interpretive languages from C/C++. Interpreters are certainly slower.

    • @Verified_Hits
      @Verified_Hits Před 6 měsíci +2

      No one is using pascal,cobal,fortan that's 90s stuff

    • @bilzebor8457
      @bilzebor8457 Před 5 měsíci +2

      @@Verified_Hits Fortran is still actively used in astrophysics by a large number of people. Most of them rather keep their old Fortran code that works instead of spending months re-writting it in a new language they're not familiar with.

    • @-es2bf
      @-es2bf Před 4 měsíci

      @@Verified_Hits cobol is still very active.

  • @Falcrist
    @Falcrist Před 11 lety

    This man reminds me of John Carmack. He's such an engineer. He's been doing his thing for decades, and has accumulated so much experience and knowledge, but he never lost that enthusiasm along the way. As with Carmack, I could listen to him for hours.

  • @KellyBeanBelly
    @KellyBeanBelly Před 11 lety

    You're absolutely right.
    This would explain all the driver code I've seen written in F#.
    (I keed.. I keed.. functional programming is fun but it's strength is formulaic. This is a tremendous advantage when you need to, say, use CL for some scientific application. But you'll never see most of us use it because it's terrible to maintain such a creature when you're mainly concerned with IPC, managing state, or the dozen other things most of us care about more than mathematical algorithms)

  • @antred11
    @antred11 Před 10 lety +11

    I have 10 years of C++, Tcl, Perl and Python under my belt, and I am indeed struggling with Haskell ... but I'm determined to go through with it as I really like the language so far, even if it's giving me constant headaches.
    I've heard a lot of people say that every programmer should know at least one functional language as it's supposed to totally change the way you approach problems.

  • @BigFatCode
    @BigFatCode Před 11 lety +51

    Assembly Language, still very important in many areas!

    • @elliott8175
      @elliott8175 Před 3 lety +4

      7 years later ...and still very true.

    • @baruchben-david4196
      @baruchben-david4196 Před 3 lety +1

      True. However, you are stuck with whatever processor it's for.

    • @elliott8175
      @elliott8175 Před 3 lety +2

      @@baruchben-david4196 To me it's more about understanding how to help the compiler and see if its done a good job at your bottleneck (on your target platforms). Also when you want to know the difference between syntax A and syntax B, you can compile and look under the hood. It's no longer a hand-waving argument.

  • @jameshogge
    @jameshogge Před 3 lety

    Personally,
    Python - First language that can cement an understanding of how to break down/tackle problems without overloading you with gotchas and quirks
    C++ - Introduces a much better understanding of how a computer works and forces you to structure your code well
    An assembly language - This is really the ultimate in appreciating what goes on "under the hood" and it really gives context to the behaviour you see at higher levels
    LISP (or clojure maybe. I'm yet to give that a go) - This is going off the beaten track but LISP really helped me see the complexity you can develop from a very simple language. It gives a more functional approach to problem solving too
    Java - This is more of a cop out for me. It's a useful language to know because it's popular. However it doesn't teach anything on top of the others. If you understand C++ and Python, you really should be able to pick up Java quickly.

  • @bighands69
    @bighands69 Před 10 lety

    Another language I would throw into the mix is Rebol. Which is amazing for beginners and also for expert engineers.
    An off shot of Rebol is red as both a very similar if you can use one then you can use the other.

  • @kzelmer
    @kzelmer Před 3 lety +3

    Quire reasonable: C++, Java, Python and C# and you have your backend covered. Add JS and one of his frameworks and thats it.
    Also, quite impressive: this video has almost 9 nine years and Stroustrup was already talking about Python as "mainline work language"

    • @alfredomulleretxeberria4239
      @alfredomulleretxeberria4239 Před 3 lety +1

      Python has existed since the '90s, dude. It's not like it appeared all of a sudden during the last 5 years or something.

    • @felipegomes6312
      @felipegomes6312 Před rokem

      @@alfredomulleretxeberria4239 but it wasn't as popular 9 years ago, stupid

  • @samdavepollard
    @samdavepollard Před 7 lety +13

    We wouldn't need all these fancy languages if people had really got to grips with Sinclair Basic when they had the chance.

    • @Inaflap
      @Inaflap Před 7 lety +4

      10 REM Calc Fibonacci using Sinclair Spectrum 16K
      20 CLS
      30 LET a=1
      40 LET b=1
      50 LET t=0
      100 PRINT a;", ";
      130 LET t=a+b
      150 LET a=b
      170 LET b=t
      190 IF a

    • @samdavepollard
      @samdavepollard Před 7 lety +6

      Stop it - you're getting me all excited. :-)

    • @Inaflap
      @Inaflap Před 7 lety +2

      Sam Pollard
      1 REM Approximate Pi using
      2 REM Gregory-Leibniz series
      10 CLS
      20 LET p=0
      30 LET a=8
      40 DEF FN d(p)=(p/101)-INT (p/101)
      50 PRINT "Thinking..."
      60 FOR f=1 TO 32768 STEP 2
      65 IF a=8 THEN GO TO 90
      70 LET a=8
      80 GO TO 100
      90 LET a=0
      100 LET p=p+(4-a)/f
      110 IF FN d(f)=0 THEN PRINT ".";
      120 NEXT f
      130 PRINT
      140 PRINT "Pi approximated to ";p
      150 BEEP 1,10
      160 STOP

    • @samdavepollard
      @samdavepollard Před 7 lety

      Beautiful.

    • @sulfasolate
      @sulfasolate Před 7 lety +2

      i can almost read that

  • @salihmsa7530
    @salihmsa7530 Před 2 lety

    C (low level), C++ (higher level yet fast concepts), Python (powerful general purpose scripting and ML), JavaScript (web) (this language is kind of easy tbh, adjusting to different frameworks and web engines is bulk of learning it practically), Haskell (just learned it for uni), Assembly (wanted to see what my C and C++ code evaluates to) and a couple more.
    in full honesty, you really only need one or two though to know at a high extent, because apart from C++ and C, I never use anything else practically

  • @MrJohnCarmack
    @MrJohnCarmack Před 10 lety

    The main idea is not how many languages you have tried to programming on, but in your understanding (from low - to - top):
    1. CPU or microcontroller's architecture principles, command formats & tact-execution;
    2. MEMO/IO bus cycles, interrupt handling;
    3. Various OS organisation, memo management, interprocess communications, file system organisation;
    4. H.Level Language text files Compilation - Linking of EXE's and DLL's(LIB's) principles;
    5. Virtual machine, TCP/IP stack, WEB.

  • @jarvisfamily3837
    @jarvisfamily3837 Před 3 lety +3

    I think that it would be useful to define some programming styles, or "types" of programming:
    1. Procedural programming - what almost everyone learns "first", and most programmers learn "only": "for" loops, mutable data, structured programming, etc, etc.
    2. Object-oriented programming - inheritance, encapsulation, polymorphism
    3. Functional programming
    - immutable data, programming by composing and combining functions, which are first-class citizens in the programming environment
    4. Logic programming - programs in which a program performs logical operations on a body of knowledge
    5. Data query programming - manipulating data in a database
    Given the above list I'd suggest:
    1. C - because it has become ubiquitous, NOT because it's a "good" programming language.
    2. Smalltalk - in part because the differing syntax (such as it is) and programming style will make new programmers strain their brains a bit, and in part because learning it will teach someone to actually *understand* object-oriented programming.
    3. Clojure - again, the different syntax of Lisp, in general, will force those learning Clojure to work a bit, mentally. It's not your mama's Same Old Programming Language and that's a good thing.
    4. Prolog - because having a programming language which enables logical deductions to be made might mean more application of logic in the world. And having a program give an unexpected (but completely logical) answer may force people to develop more understanding of their problem domains.
    5. SQL - partly because it has become ubiquitous, along with relational databases, and partly because it forces programmers to figure out how to work with sets of data - which can also be helpful in the "functional programming" paradigm.

  • @jwaustinmunguy
    @jwaustinmunguy Před 8 lety +70

    Fortran, Cobol, Algol, PL/1, Pascal, C, C++, Perl, Java, Python, ... 47 years.

  • @furrball
    @furrball Před 7 lety

    And Assembly, any platform. Just to remind you what all others end up being translated to, so you can tell serious optimizing compilers from the rest of the bunch.

  • @YuSuck
    @YuSuck Před 4 lety

    Coming from Delphi. C# was easy to pickup. Thanks Anders Hejlsberg

  • @BorayMusic
    @BorayMusic Před 8 lety +3

    A professional is a person who earns their living from a specified activity - regardless of how many programming languages you know.

  • @jacksonhenley733
    @jacksonhenley733 Před 11 lety +6

    5? There days you have to know frameworks, not just languages. Knowing just one framework is an incredible feat!

  • @CookiePepper
    @CookiePepper Před 2 lety

    If you can use Assembly, C/C++, and HDL then you can use any other languages.
    Programming 2.0 (DNN) is also important.

  • @evalsoftserver
    @evalsoftserver Před 7 lety

    Class Abstractions Meaning how Declarative Program data are classified by a compiler as not to look like a IMPERATIVE line by line Program for representing a particular Object,example LIKE a Java Class declaration

  • @evalsoftserver
    @evalsoftserver Před 8 lety +381

    Java technically could be called C--

    • @niels8718
      @niels8718 Před 8 lety +10

      HHAHAHA

    • @HysterS-FT
      @HysterS-FT Před 8 lety +10

      +TheProfiler What? How? C and Java aren't even remotely related to each other.

    • @HysterS-FT
      @HysterS-FT Před 8 lety +16

      +Tom Cassidy Just because a portion of the language was written in C, it doesn't imply that the language is related to C. C is a very non-object-oriented and low-level language, while Java is the exact opposite of that. Java is more like C#, if anything.

    • @HysterS-FT
      @HysterS-FT Před 7 lety +3

      Simon Farre What? No. Someone was comparing Java to C, not C# to C. I was trying to point out that Java is much more similar to C# than C.

    • @zelphirkaltstahl461
      @zelphirkaltstahl461 Před 7 lety +3

      No need to use the loosest definition, they are actually quite similar, when you compare syntax and what OOP concepts you may express. They feel inherently different from things like Haskell or Scheme, because they follow different paradigms and developed a different syntax for that.

  • @IEnumerable
    @IEnumerable Před 13 lety +4

    As mentioned, the key is to study various programming paradigms rather than just some hard # of languages. Functional: Lisp, Haskell, ML. OO: Smalltalk. Dynamic: Python, Javascript. Managed: Java, C#. Concurrency: Erlang. In my opinion, the single most important to be a good programmer is Scheme.

  • @keatonhatch6213
    @keatonhatch6213 Před 2 lety

    If you learn a static, dynamic, functional, OOP language, the only thing that differs from that is syntax, except for maybe memory management.

  • @jason13gaming
    @jason13gaming Před 2 měsíci

    Created C++ and recommends Java alongside it 🎉 makes me feel solid

  • @kurrator1
    @kurrator1 Před 10 lety +7

    1 Lisp, 2 Lisp, 3 Lisp, 4 Lisp, 5 Lisp.
    If you will master Lisp all other existing languages are only few macros away.

    • @JLConawayII
      @JLConawayII Před 10 lety +2

      No.

    • @kurrator1
      @kurrator1 Před 10 lety +1

      *****
      There are more C dialects: Java/C#/C++/PHP/Rust/Go/.... and nobody is complaining. Language is just a tool. The less dependent on committee the better. A good language allows you to shape itself according to your needs, C++ is like Soviet Russia - it shapes you.

    • @longde
      @longde Před 7 lety +1

      1 Common Lisp 2 Scheme 3 Clojure 4 learn more Lisp 5 learn more Lisp

    • @mrdarky3377
      @mrdarky3377 Před 6 lety

      Just learn Scheme and reinvent the wheel many times until you get a working SNOBOL interpreter.

    • @thegameoflife9179
      @thegameoflife9179 Před 6 lety

      Lisp is a stupid language that is too tied up within itself to be understandable by most human beings.

  • @golemwardox4316
    @golemwardox4316 Před 3 lety +3

    So I'm in college right now, and I learned Python before coming. I think Python -> Java -> C is a great way to kind of learn the 'big picture' and narrow in. Of course, Java and C were a part of my coursework so it is a bit naive of me to say that this is a "superior" progression, but it worked well for me. I don't know what language I want to learn next. I think I want to try more front-end programming, so I'm thinking HTML/CSS or JavaScript. Does anyone have a good entryway language to learn for more front-end programming? Thanks!

  • @piyushupadhyay4571
    @piyushupadhyay4571 Před 3 lety +1

    My picks are C++, Typescript, Rust, Elixir, Haskell and Python
    Covers most of what I need to do.
    And sometimes Dart as well

    • @steveoc64
      @steveoc64 Před 2 lety

      Have a play with zig too, it's the only thing I've seen that fits nicely as a straight C replacement.

  • @BritishBeachcomber
    @BritishBeachcomber Před 6 lety +1

    Much respect for a great guy, but, I learned, and used, Fortran, Basic, assembler, COBOL, Pascal, C, C++, Java, JavaScript, Forth, and machine code - right down to the bare metal.
    But all that really matters are the algorithms. Then you can do it in whatever language is best for the job.

  • @ahmadnikidoskaufmann
    @ahmadnikidoskaufmann Před 10 lety +11

    c++, java, phyton, ruby, java script

  • @todd.cannon
    @todd.cannon Před 8 lety +68

    And you better be able to pick up new languages on the fly if you want to have regular meals in this racket boys and girls. The last job I had was maintaining e-commerce sites. Guess how many skills that took? The job before that I was in a Visual Basic environment writing software for a resort management company. Guess what I'm doing now? I'm writing tools in Access 2003 using VBA that runs a FACTORY! That right. We are running a manufacturing facility using freaking ACCESS! So you see, you never know what you'll have to roll into. So forget "languages". You better be a versatile problem solver that can learn new things on demand, reverse engineer shit code to create useful solutions, AND spin straw into gold, LOL!

    • @carlsanc3880
      @carlsanc3880 Před 8 lety +36

      +Todd Cannon If i had to work doing VB applications and working with access I would quit and go work in the fast food industry.

    • @todd.cannon
      @todd.cannon Před 8 lety +25

      +Carlos Sanchez Don't think it hasn't crossed my mind, LOL!

    • @natevb9901
      @natevb9901 Před 6 lety +4

      If you can pick up languages OR software fairly easily (or with a lot of effort but short time span) then they both take care of eachother. The mentality there helps and the more languages you use and corporate software you become not only familiar with but also have mastered the power-user aspects of, the more likely you are to get the job that the next equally qualified person could have gotten.
      And they try to tell us that we are silly to put things like Powershell/Office/Maya/OpenSourceTools/AdobeSuite on our resume but all of my corporate jobs have involved some modicum of knowledge in programming macros for office products, familiarity with how they react to COM objects, using tools like ImageMagick in your software or scripts, and photo-editing knowledge with programs like Gimp/Photoshop/Paint.NET.
      That makes a really large and costly fix turn into a quick and cheap powershell script with use of tools that have been tested by thousands or millions of people. Cheap QA :-)
      Developers/Engineers/Architects/etc could all do themselves a lot of good learning how to use critical software that are used in open-source projects and/or internal corporate powerhouses. LIke you said - Languages aren't everything - but they do help (they've found that like speaking languages, the more you learn, the faster and more efficiently you learn new ones).

  • @CorporateG0th
    @CorporateG0th Před 11 lety +1

    1:40
    Lua. Just do it, it's like a throwback to BASIC era sometimes. Refreshingly so. I'd swap out Python with PHP, too.

  • @yuvrajsingh099
    @yuvrajsingh099 Před 7 měsíci

    Well in my opinion - Java(with kotlin), Python, C++(start with C), (Html,css, Javascript) Typescript, Database- handling. And also 2 or 3 framework would be beneficial.

  • @CodeRevolution
    @CodeRevolution Před 10 lety +13

    "C++ of course..." XD

  • @AnuragPradhan101
    @AnuragPradhan101 Před 8 lety +5

    i only heared 3 languages ie.
    c++
    Java &
    Python
    then others 2 ?

    • @saeedbaig4249
      @saeedbaig4249 Před 6 lety

      Also Javascript. Ruby

    • @sekgo1265
      @sekgo1265 Před 6 lety

      Inheritely, if you know Java you also know quite a bit of C#.

    • @obinator9065
      @obinator9065 Před 5 lety

      @@sekgo1265 If you know C++ C# won't be a big problem.

  • @nathan43082
    @nathan43082 Před 7 lety

    Not current on all of them, and not learned in this order, but in 36 years of programming: BASIC, FORTRAN, C, C++, Pascal, PostScript, Javascript, Java, ActionScript, 6502 Assembler, Swift, a smattering of Objective-C.

  • @mcblahflooper94
    @mcblahflooper94 Před 6 lety

    My 5: Java, Python, C, JavaScript, and (((((Lisp))))). I have varying experience from all (Java the most of course), but would really like to play with others more, particularly python and JS. I’m a big fan of clean syntax and pretty code.

    • @jlmurrel
      @jlmurrel Před 3 lety

      What is the advantage of LISP?

  • @MrVoayer
    @MrVoayer Před 9 lety +14

    What does "knowing programming language" really mean?
    Even kids know how to move pieces on a chessboard. Does that qualify them for "knowing chess" ?

    • @MsMattness
      @MsMattness Před 8 lety +1

      MrVoayer No, just like kids can move chess pieces randomly, I can write shit and call it c++. But on the other hand if I know how to move and use the pieces correctly, just like syntax and solving a problem in programming is, then yes, you "know" it.

    • @MrVoayer
      @MrVoayer Před 8 lety +1

      Matt Fischer The way I look at it for a language of C++ complexity you need several years of heavy programming to reach the level of expertise that you may say you "know the language". Five such languages could easily mean 15 to 20 years of heavy coding. By that time you can't remember how to declare a variable in the language you first started with let alone be able to say you know that language any more.That's why I find such an advice for having to "know" five programming languages simply preposterous. Having extensive experience with several programming languages is advisable, though.

    • @ToveriJuri
      @ToveriJuri Před 8 lety +2

      MrVoayer
      Learning to play chess is not hard. You can do it pretty quikly, becoming decent and better than most of the population takes more effort, but isn't the biggest challenge. Becoming good at it takes a lot of time and effort.
      Mastering it? Most people will never master it, but becoming very good and efficient at it takes some real dedication.
      When he talks about learning languages I really doubt he means becoming an expert at all of them. Familiarising yourself with multiple languages will make you able transition to new languages and new ideas quickly. This is a field that's constantly developing and getting new tools and updated paradigms. I'd say these days it's more important to become adaptable than mastering 5 languages.
      Obviously you should become very proficient at least with a couple, but don't over do it.

    • @ultru3525
      @ultru3525 Před 8 lety

      +MrVoayer C++ is a HUGE exception, any other language isn't nearly as complex, and a lot easier to get proficient in.

    • @RonWolfHowl
      @RonWolfHowl Před 8 lety +1

      +Toveri Juri “jack of all trades and master of one”

  • @UniInflux
    @UniInflux Před 7 lety +31

    I love his hair LOL

    • @virajpotdar8104
      @virajpotdar8104 Před 3 lety

      😂

    • @sankalp2520
      @sankalp2520 Před 2 lety +5

      brain >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> hair

    • @user-pl7tf9gv8e
      @user-pl7tf9gv8e Před 2 lety

      No electricity left to give the hair's static electricity

  • @rain_deer
    @rain_deer Před 11 lety

    I wasn't saying Java or C# were functional, I'm getting at if you're gonna write a driver it basically comes down to which c compiler do you like.
    As for functional languages not having practical code reuse I have to bring up lambdas are the ultimate form of abstraction. Almost any pattern can be generalized to a higher order function.

  • @LTS1287
    @LTS1287 Před 11 lety +1

    I've been struggling with Haskell, lol! I've never looked at Clojure to be perfectly honest. The languages I know are C/C++, Python, and Jave. I would consider myself a novice with C because I'm still learning about data structures and all that. My latest project has been to create a dynamic array in C. When I get better with Haskell I really would love to be able to tie Haskell and C together into a fun project. Happy coding!

    • @elliott8175
      @elliott8175 Před 3 lety

      Did you find learning Haskell either directly or indirectly useful in your career?

  • @eventhisidistaken
    @eventhisidistaken Před 10 lety +15

    Well, can we all at least agree that XML is a bad idea?

    • @joserobertotorresmancilla3403
      @joserobertotorresmancilla3403 Před 10 lety +21

      XML is a Markup Language, not a Programming Language.

    • @eventhisidistaken
      @eventhisidistaken Před 10 lety +1

      Yes, I understand that. I use it, and I hate it. It needlessly bloats everything it touches needlessly.

    • @aledrees2
      @aledrees2 Před 10 lety +1

      Bloated sentence: "It NEEDLESSLY bloats everything it touches NEEDLESSLY".
      That said, you're right it does. Still I couldn't face webdev without ajax.

    • @eventhisidistaken
      @eventhisidistaken Před 10 lety +25

      ...see? It even makes you talk redundant in your speech. That's how bad it is.

    • @aledrees2
      @aledrees2 Před 10 lety

      The only time I use XML is to request using jSon as an alternative to XML. haha.

  • @kevind.shabahang
    @kevind.shabahang Před 8 lety +4

    Fortran for numerical/high-performance programming

  • @MarkusBurrer
    @MarkusBurrer Před 3 lety

    Rust for system and embedded development, Elm for web apps, Julia as Python replacement and Scala, F# and maybe something like Go for the rest

  • @luketongs
    @luketongs Před 11 lety

    So good to know that even Bjarne Stroustrup thinks some functional languages can keep your head spinning.. Even when I got use to haskell, it still kept me on my toe's.. I think I'm going to have to revisit the C++ days. C# has consumed me.

  • @dr1303
    @dr1303 Před 10 lety +6

    Oh come on! One should start at assembly, and work their way up :D

    • @felipegomes6312
      @felipegomes6312 Před rokem

      One does not have time for it these days, unless they are 10 years old sort of genius

  • @malectric
    @malectric Před 10 lety +3

    I do most of my programming in assembly language, mostly for embedded applications these days. I just love having total control of the machine and I don't like compilers getting in the way. I'll never make a million but I don't care - it's all about having fun.

  • @JohnSGruber
    @JohnSGruber Před 10 lety

    Grab the debug command and use the a and u subcommands. Better put in nop's between sections of code and don't forget to write your program to disk with the w subcommand.

  • @MelvinSF
    @MelvinSF Před 10 lety

    Yes, I agree - I interpreted the list as C++, Java, Python and one of the functional languages (e.g. Haskell, Lisp). Knowing those, you can't help but know a little C, Ruby, Javascript and C#.
    That's only 4 languages though, so what exactly the list of 5 was supposed to be, I'm not sure. As a list of 4, it looked pretty solid to me, but I guess I misinterpreted it. :)

  • @l.wproberts7397
    @l.wproberts7397 Před 10 lety +6

    some assembly required

  • @H2CO3Szifon
    @H2CO3Szifon Před 10 lety +3

    "C++, of course"...

  • @sdsdfdu4437
    @sdsdfdu4437 Před 5 lety

    C/C++, Haskell, x86_64 assembly, OCaml

  • @WhatsACreel
    @WhatsACreel Před 11 lety

    Just an idea but pick languages from different paradigms
    1. C++ for a good background in OO.
    2. HTML for a good background in all the tag based languages.
    3. Lisp for a good background in functional programming.
    4. Assembly because it helps in all of the above.
    5. Write your own because then you'll be cool like Bjarne!
    If you know these languages you basically know 100's of others. Java, Python, C#, machine code, Scheme, XML, XAML etc. etc. They're all just different accents of the above!

  • @orthofish
    @orthofish Před 11 lety +3

    1) C, 2) Scheme or Lisp or Clojure, 3) OCaml or Haskell 4), Python or Ruby 5) Prolog.

  • @Intrepidity
    @Intrepidity Před 9 lety +29

    With all due respect to Stroustrup, being a good professional developer is so much more about having a feel for algorithms and logical thinking than about which syntaxes you know.. For any good developer learning a new language is relatively easy. Learning the logic behind programming is the hard part. He gives some nice examples of good languages to start with, but I don't agree with his basic premise.

    • @sanjithjoseph6906
      @sanjithjoseph6906 Před 9 lety +1

      then i'm sorry but you just cannot call yourself a complete programmer. You say this as you have only been exposed to imperative programming(c,c++,java,python,js,etc). Have you ever tried haskell or erlang. Its not just syntax, these languages are grounded in lambda calculus.(superior to imperative style). So unless you understand closures,monads,tail recursion,etc, you just cannot call yourself a complete prpgrammer

    • @SpyzacFilms
      @SpyzacFilms Před 9 lety +5

      Sanjith Joseph a true programmer, is one that creates with what he knows, not one whom knows the most.
      one can know ever programming language and do very little with it, and one can know one or two languages and do heaps, who is the real programmer.

    • @sanjithjoseph6906
      @sanjithjoseph6906 Před 9 lety +5

      ***** Your definition of a programmer is highly utilitarian. Doing heaps is good, but being stuck to a single programming language is very narrow and restricts thinking(not just knowledge). Gaining an understanding of different paradigms broadens ones mind. Also, today's world requires knowledge of multiple platforms/libraries/languages to develop full stack apps - client android/ios app, server backend, presentation layer, front end, db layer,etc -- all require juggling multiple technologies. So sticking narrowly to a single lang is an impossible. Also, this is not just my opinion, google out all the greats - Norvig, Knuth,Alan Kay etc - all the experts advocate learning multiple paradigms...

    • @SpyzacFilms
      @SpyzacFilms Před 9 lety +1

      Sanjith Joseph i'm talking about the term of a true programmer, as in i was saying one that does what they can with code is instantly a programmer.

    • @UserName-bq7uf
      @UserName-bq7uf Před 9 lety +3

      Bart Guliker It didn't sound to me like Stroustrup was implying that.

  • @GregoryTheGr8ster
    @GregoryTheGr8ster Před 6 lety

    Don't forget BASIC! I got started on gwbasic in MS-DOS, and IT CHANGED MY LIFE!

  • @canadiannuclearman
    @canadiannuclearman Před 2 lety

    I was and still a fan of AutoLisp now called visual lisp for AutoCAD

  • @undertheapi
    @undertheapi Před 11 lety +3

    I say learn Prolog just to let it screw with your mind :D

  • @nokiadu
    @nokiadu Před 9 lety +3

    Pure C!

  • @AshimShunnota
    @AshimShunnota Před 11 lety

    Thank You Sir , I'll remind your advice.

  • @KellyBeanBelly
    @KellyBeanBelly Před 11 lety

    I think my argument is that most problems I encounter are data driven, not functionally driven. Nesting many lambdas together to try to reuse some kind of data usage pattern seems silly to me. But I didn't mean to imply there is no reuse in any functional language. Just that the 'reuse' here lends itself to function derivation. OOP makes more sense for most of the data plumbing we all do on a daily basis.
    But, hey, this is why languages are becoming more 'mixed'. Everything has a use