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

Поділитися
Вставка
  • Опубліковано 26 вер 2024
  • 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/face...
    🐦Twitter: bigth.ink/twitter
    📸Instagram: bigth.ink/Inst...
    📹UA-cam: bigth.ink/youtube
    ✉ E-mail: info@bigthink.com

КОМЕНТАРІ • 2 тис.

  • @danbuffington75
    @danbuffington75 4 роки тому +793

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

    • @Loug522
      @Loug522 4 роки тому +83

      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 4 роки тому +10

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

    • @JJSogaard
      @JJSogaard 4 роки тому +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 4 роки тому +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 4 роки тому +20

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

  • @Zer0Mem0ry
    @Zer0Mem0ry 9 років тому +2269

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

    • @jigglywiggly6479
      @jigglywiggly6479 9 років тому +150

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

    • @SpyzacFilms
      @SpyzacFilms 9 років тому +167

      VirtualCoder who needs language when you speak binary :D

    • @ToveriJuri
      @ToveriJuri 9 років тому +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 9 років тому +9

      VirtualCoder can you make a game with English ?

    • @Zer0Mem0ry
      @Zer0Mem0ry 9 років тому +57

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

  • @poldergeest0297
    @poldergeest0297 10 років тому +118

    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 8 років тому +8

      He HAS A Very Calm and Composed Temperment

    • @Padeir0
      @Padeir0 3 роки тому +1

      it would be a year long

    • @PsycosisIncarnated
      @PsycosisIncarnated 2 роки тому

      @@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 11 років тому +82

    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 2 роки тому +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 7 місяців тому

      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 8 років тому +63

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

  • @photoallergic
    @photoallergic 12 років тому +53

    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 Рік тому +3

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

    • @fennecbesixdouze1794
      @fennecbesixdouze1794 Рік тому +5

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

  • @nERVEcenter117
    @nERVEcenter117 9 років тому +98

    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 8 років тому +1

      “managed language”?

    • @napalm5
      @napalm5 Рік тому +5

      @@RonWolfHowl Probably has a strong ecosystem of libraries

    • @josephp.3341
      @josephp.3341 Рік тому +1

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

    • @fennecbesixdouze1794
      @fennecbesixdouze1794 Рік тому +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 11 місяців тому

      Java is also an interpreted language, hence, JVM.

  • @meezookee8491
    @meezookee8491 4 роки тому +1244

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

    • @zes3813
      @zes3813 3 роки тому

      wrgg

    • @TheHippyHoppyHippo
      @TheHippyHoppyHippo 3 роки тому +19

      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 3 роки тому +65

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

    • @kensei4237
      @kensei4237 3 роки тому +14

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

    • @cpzd83
      @cpzd83 3 роки тому +3

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

  • @souhailkaoussi6415
    @souhailkaoussi6415 8 років тому +1030

    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 8 років тому +4

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

    • @HenrikVendelbo
      @HenrikVendelbo 8 років тому +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 8 років тому +4

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

    • @stefan1draganov
      @stefan1draganov 8 років тому +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 8 років тому

      Don't be difficult.

  • @eventhisidistaken
    @eventhisidistaken 10 років тому +580

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

    • @charlesmcdowell9436
      @charlesmcdowell9436 10 років тому +4

      Lol.

    • @dreamingacacia
      @dreamingacacia 10 років тому +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 9 років тому +28

      No woris m8 . I alredy kno how to egnlisch .

    • @DivineOwl
      @DivineOwl 9 років тому +5

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

    • @barutelecom
      @barutelecom 9 років тому

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

  • @webiplus
    @webiplus 9 років тому +451

    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.. 9 років тому +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 9 років тому +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.. 9 років тому +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 9 років тому +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.. 9 років тому

      Anis Matar !

  • @CarterColeisInfamous
    @CarterColeisInfamous 11 років тому +7

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

  • @mattt2684
    @mattt2684 6 років тому +8

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

    • @windunursetyadi
      @windunursetyadi 4 роки тому +1

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

  • @insect212
    @insect212 10 років тому +607

    Why am I not surprised he picked c++?

    • @dreamingacacia
      @dreamingacacia 10 років тому +52

      because he's the one who created it :p

    • @insect212
      @insect212 10 років тому +57

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

    • @dreamingacacia
      @dreamingacacia 10 років тому +22

      Brock X yay ! finally I got it

    • @edgargil9900
      @edgargil9900 9 років тому +3

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

    • @TheGlario
      @TheGlario 9 років тому +5

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

  • @MrCmon113
    @MrCmon113 7 років тому +216

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

    • @xtremeloverboi6066
      @xtremeloverboi6066 4 роки тому +23

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

    • @embeddedbastler6406
      @embeddedbastler6406 4 роки тому +111

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

    • @xtremeloverboi6066
      @xtremeloverboi6066 4 роки тому +15

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

    • @valizeth4073
      @valizeth4073 4 роки тому +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 4 роки тому +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.

  • @MsJavaWolf
    @MsJavaWolf 5 років тому +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.

  • @2Cerealbox
    @2Cerealbox 10 років тому +17

    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.

  • @chris4a970c
    @chris4a970c 11 років тому +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.

  • @l2z-g1g
    @l2z-g1g Місяць тому +1

    1. SQL: Declarative programming in a timeless and eternal programming language
    2. Java: OOP, programming with a garbage collector
    3. JavaScript: pragmatism, learning to work with code existing in an ecosystem with an enormous amount of libraries and toolings
    4. Rust: Imperative programming, some functional programming, programming closer to the hardware, solving puzzles with a demanding type system, and type classes
    5. Clojure: functional programming, LISP, simplicity, working with a REPL, dynamic systems
    It's about learning concepts,, not languages. So many combinations work, this is just one.

  • @alvisc2002
    @alvisc2002 7 років тому +186

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

  • @antred11
    @antred11 11 років тому +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.

    • @NonTwinBrothers
      @NonTwinBrothers 2 роки тому +5

      Hey bro it's been another 8 years how's it been?

    • @terrap0b_ps995
      @terrap0b_ps995 2 роки тому

      I would like to know about your 18 years of coding journey as well!

    • @Golden_AceDBD
      @Golden_AceDBD 10 місяців тому

      update after 10 years?

    • @jeijeigriff8934
      @jeijeigriff8934 7 місяців тому

      @@Golden_AceDBD He is dead

  • @punkxxt
    @punkxxt 9 років тому +192

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

    • @thePronto
      @thePronto 6 років тому +33

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

    • @opiniondiscarded6650
      @opiniondiscarded6650 6 років тому +1

      this.

    • @NileAagard
      @NileAagard 6 років тому +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 5 років тому +2

      Coincidentally Rosseta _Code_ has several sample programs in several languages

    • @MKMK-bj2sk
      @MKMK-bj2sk 5 років тому +4

      Google translate is better

  • @gzsingh1435
    @gzsingh1435 6 років тому +5

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

  • @Pvsmuntje
    @Pvsmuntje 11 років тому +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 2 роки тому +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.

  • @magletters
    @magletters 10 років тому +12

    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 9 років тому +1

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

    • @MrCmon113
      @MrCmon113 6 років тому +2

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

    • @xtremeloverboi6066
      @xtremeloverboi6066 4 роки тому

      @@MrCmon113 I Hate Haskell.

  • @critstixdarkspear5375
    @critstixdarkspear5375 5 років тому +7

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

  • @rteja764
    @rteja764 4 роки тому +41

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

  • @corybuczkowski8784
    @corybuczkowski8784 11 років тому +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++.

  • @morpher44
    @morpher44 11 років тому +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 Рік тому +1

      and how it is now?

    • @morpher44
      @morpher44 Рік тому +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.

    • @HINDUSTANI_CLUB
      @HINDUSTANI_CLUB 10 місяців тому +2

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

    • @bilzebor8457
      @bilzebor8457 9 місяців тому +2

      @@HINDUSTANI_CLUB 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 9 місяців тому

      @@HINDUSTANI_CLUB cobol is still very active.

  • @nthmost
    @nthmost 11 років тому +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. (UA-cam won't let me post the link here.)

    • @fennecbesixdouze1794
      @fennecbesixdouze1794 Рік тому

      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.

  • @xMrJanuaryx
    @xMrJanuaryx 7 років тому +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

  • @yoanadimitrova8760
    @yoanadimitrova8760 8 років тому +146

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

    • @qwertyashish
      @qwertyashish 7 років тому +22

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

    • @arifp5524
      @arifp5524 7 років тому +36

      ashish singh java is island language in indonesia

    • @qwertyashish
      @qwertyashish 7 років тому +1

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

    • @arifp5524
      @arifp5524 7 років тому

      ya java land

    • @rup7591
      @rup7591 7 років тому

      ashish singh You are a wise man .

  • @BigFatCode
    @BigFatCode 11 років тому +51

    Assembly Language, still very important in many areas!

    • @elliott8175
      @elliott8175 4 роки тому +4

      7 years later ...and still very true.

    • @baruchben-david4196
      @baruchben-david4196 4 роки тому +1

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

    • @elliott8175
      @elliott8175 4 роки тому +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.

  • @Asto508
    @Asto508 11 років тому +1

    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.

  • @jwaustinmunguy
    @jwaustinmunguy 8 років тому +70

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

  • @kzelmer
    @kzelmer 4 роки тому +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 3 роки тому +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 2 роки тому

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

  • @ViktorEngelmann
    @ViktorEngelmann 6 років тому +4

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

  • @evalsoftserver
    @evalsoftserver 8 років тому +380

    Java technically could be called C--

    • @niels8718
      @niels8718 8 років тому +10

      HHAHAHA

    • @HysterS-FT
      @HysterS-FT 8 років тому +10

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

    • @HysterS-FT
      @HysterS-FT 8 років тому +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 8 років тому +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 8 років тому +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.

  • @SloMoShort
    @SloMoShort 4 роки тому +1

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

  • @IEnumerable
    @IEnumerable 13 років тому +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.

  • @BorayMusic
    @BorayMusic 9 років тому +3

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

  • @tnsaturday
    @tnsaturday 7 років тому +5

    for (var i = 0; i < 5; i++) {
    console.log("JavaScript");
    }

  • @cedrix57
    @cedrix57 7 років тому +2

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

  • @georganatoly6646
    @georganatoly6646 4 роки тому +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).

  • @jacksonhenley733
    @jacksonhenley733 11 років тому +6

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

  • @kurrator1
    @kurrator1 11 років тому +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 10 років тому +2

      No.

    • @kurrator1
      @kurrator1 10 років тому +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 7 років тому +1

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

    • @mrdarky3377
      @mrdarky3377 6 років тому

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

    • @thegameoflife9179
      @thegameoflife9179 6 років тому

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

  • @daver1964
    @daver1964 11 років тому +6

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

  • @Milosz_Ostrow
    @Milosz_Ostrow 10 років тому +28

    Stroustrup mentions seven languages by name (not five), but doesn't indicate which five of those seven one "needs to know". He then limp-wristedly waves in the direction of the "functional languages", calling them "esoteric". How am I supposed to take someone like this seriously?
    Stroustrup created C++, so I'd expect him to be partial to that language, but truth be told, it is a TERRIBLE language to use in an educational setting and too low-level in many commercial settings when getting problems solved is more important than spending a year or two debugging and fixing code.

    • @j4k154
      @j4k154 10 років тому +33

      You are probably TERRIBLE at C++. Truth to be told.
      You need to spend year or two to learn it, which you don't want to (or are not capable to do) so it is just easier to thrash talk about something which you don't understand to cover up your incompetence.

    • @Milosz_Ostrow
      @Milosz_Ostrow 10 років тому +10

      j4k154 You make assumptions for which you have zero evidence, although it's pretty clear that my comment hit a raw nerve in your case, at least.

    • @j4k154
      @j4k154 10 років тому +31

      ***** "...spending a YEAR OF TWO debugging and fixing code"
      You are right. I have no evidence that you are terrible at C++. Maybe you are just pretending you are stupid.
      Yes, you hit my nerve, because your "opinion" is damaging new programmers, who will choose book "how to be Java expert in 2 weeks" instead of investing some time in their education, just because some lazy-wannabe-programmer told them C++ doesn't fit educational and commercial settings.
      I have 10 years of professional programming experience in C++, C, C#, Java, Python and Javascript, to name a few languages, and I started with Basic, during my elementary school, but my very first OO-language was C++. Learning C# and Java, after that, was piece of cake, and recognizing how terrible Java code can be created by so-called Java experts, just because they don't have a clue what is going on under the hood, is something that I got from C++.
      Majority of my projects are C++ or C#, because I have to work with .NET technology often. I live in country which is economically near collapse, but I don't worry about my job, because I can take every single programming job offered, and give my employer immediate benefit because C++ trained me to be efficient and adaptable.
      Your attitude, and attitude promoted by lazy programmers like you, tend to create mediocre programmers who earn less money, who are easily replaceable, and who don't enjoy programming.
      If your intention was to hit raw nerve of somebody who is clearly more experienced programmer than you, well done!

    • @secretpandalord
      @secretpandalord 10 років тому +29

      If you had paid better attention, he says a programmer should at least know somewhere between 3 and 7 languages, and calls high-performance numerical computation languages, and not functional languages, esoteric. He says knowing a functional language is good to "keep your head spinning". Also, you're supposed to take him seriously because he invented C++.

    • @TGbekir38
      @TGbekir38 9 років тому

      j4k154
      Any advice on how to properly learn C++? I'm in the midst of the semester and I have to learn assembly, C and C++ right now ... but there is only so few time that I kind of have to rush through it. But afterwards I'd really like to elaborate my learning.
      It's just ... I don't know how. Any good sides, books or tutorials you can recommend? I'm also looking for exercises but I can't find many that suit myself (they are either too easy or too hard). My biggest problem is that I can't program for myself ... someone in my course was like: "I programmed myself a script which did the work for me" and I'm like "how?!".

  • @evalsoftserver
    @evalsoftserver 8 років тому +2

    If you take BINARY Machine Language ,add OPERATION Abstractions you get. ASSEMBLY LANGUAGE ,Add Structural Abstractions you get ALGO 60 MACHINE CODE , add NUMERICAL Abstractions you get COBOL ,add FORMULA Abstractions. you get FORTRAN ,Add INLINE Abstractions you get BASIC, add CLASS Abstractions you get SIMULA, C, C++ JAVA, ADD FUNCTIONAL Abstractions You get Haskell

    • @evalsoftserver
      @evalsoftserver 8 років тому +1

      ADD Syntax Abstractions you get LISP

    • @esmondlucan4269
      @esmondlucan4269 8 років тому

      +TheProfiler FORTRAN IS LAMBDA CALCULUS ABSTRACTION OF INTERGER TYPE OF COBOL

    • @esmondlucan4269
      @esmondlucan4269 8 років тому

      +Esmond Lucan Basically ALGO 60 ++COBOL EQUAL FORTRAN,JOHN BACKUS OF IBM WAS INVOLVED IN ALGO DEVELOPMENT HE SIMPLY TOOK WHAT HE LEARNED FROM ALGO 58-60,AND CREATED FORTRAN BY FORMULA ABSTRACTIONS OF COBOL NUMERICAL LINEAR DATA ,TO CREATE A FORM OF STRUCTURE,THIS IS WHERE WE GET THE OOP ,ORIENTATION PRINCIPAL A DECADE LATER ,AROUND 1965-70 LEADING TO WHAT WOULD BECOME OBJECT ORIENTED PROGRAMMING

  • @MrVoayer
    @MrVoayer 9 років тому +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 9 років тому +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 9 років тому +2

      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 9 років тому +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 9 років тому

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

    • @RonWolfHowl
      @RonWolfHowl 8 років тому +1

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

  • @samdavepollard
    @samdavepollard 8 років тому +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 8 років тому +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 8 років тому +6

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

    • @Inaflap
      @Inaflap 8 років тому +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 8 років тому

      Beautiful.

    • @sulfasolate
      @sulfasolate 7 років тому +2

      i can almost read that

  • @jarvisfamily3837
    @jarvisfamily3837 3 роки тому +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.

  • @knightoflambda
    @knightoflambda 11 років тому +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.

  • @gianluke
    @gianluke 4 роки тому +1

    With C I learned the basics of programming.
    With Assembly I learned what's behind C.
    With Java I learned OOP and design patterns.
    With Matlab I learned to see computation in terms of vectorial operations.
    With Python I learned the elegance of simplicity, high-level features of modern languages, the basics of functional programming.
    With JavaScript I learned the pain to work with a shitty language.

    • @alfredomulleretxeberria4239
      @alfredomulleretxeberria4239 3 роки тому

      You coulda just done everything in C. C can be used for matrix manipulation just as it can be used for OOP and even for handling things down to the basic Boolean logic gates level.

  • @ahmadnikidoskaufmann
    @ahmadnikidoskaufmann 11 років тому +11

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

    • @krystof7059
      @krystof7059 4 роки тому +1

      english

    • @ecranfortessa
      @ecranfortessa 4 роки тому

      @@krystof7059 Which version, English, English++ or English#?

  • @malectric
    @malectric 11 років тому +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.

  • @orthofish
    @orthofish 11 років тому +3

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

  • @pipelonjfrmm
    @pipelonjfrmm 4 роки тому +2

    He seems to be much more educated and respectful than Linus Torvalds, lots of respect to him

  • @shadowhunter1345
    @shadowhunter1345 2 роки тому +1

    After watching the video i went to analyze which languages i know well they are C, Java, Python, Scala (recently devoted a lot of time for FP), Typescript(Javascript), thats it so i have covered so far 1 procedural language , some scripting/oops, oops, and a FP language totaling to 5. Now some languages i know from the basis of HDL(Hardware description languages) like Verilog (especially used it to programme for the FPGA), embedded C(lets say it but will not count it as its just like we use few libraries from embedded verse), Hmm i guess that all. Feeling confident and happy : ), lets try to analyse pls reply in commentso we see what generally how other fellow dev's, researches language portfolios look like over the years.

  • @todd.cannon
    @todd.cannon 9 років тому +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 9 років тому +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 9 років тому +25

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

    • @natevb9901
      @natevb9901 6 років тому +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).

  • @OwnedSoda13BBH
    @OwnedSoda13BBH 3 роки тому +3

    Viewer, I'm proud of you for clicking on this video.

  • @dr1303
    @dr1303 11 років тому +6

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

    • @felipegomes6312
      @felipegomes6312 2 роки тому

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

  • @jarvisfamily3837
    @jarvisfamily3837 3 роки тому +1

    Five languages professional programmers should know? Well, that will be different depending on the typical problem domain you work in, but let's try the following (which are in no particular order, except for C, which is last, which is where it should be):
    1. JavaScript - web.
    2. SQL - because at some point you'll have to interact with a database.
    3. Lisp - or a modern variant such as Clojure.
    4. Smalltalk - if you tell me "I don't know Smalltalk and I know all about objects" I'm going to tell you that you don't know what you don't know. Smalltalk will twist your brain, but when you finally get it...well, then you'll finally get it. Besides, learning a language that doesn't have an "if" statement is good for you.
    5. C - because it has become software development's least common denominator. Frankly, at this point in history I think it's a cr*ppy language to force on people, but some of the concepts are useful to know (if only from the point of view of "don't ever do this"). For some huge percentage of programming tasks a language which does not provide garbage collection and forces people to manually deal with pointers is wasteful, because for many programmers it's simply going to be a bug farm. Arguably this could be replaced by something like Python.

  • @FikiFirmansyah
    @FikiFirmansyah 5 років тому +1

    English is your most important & first language to learn

  • @Intrepidity
    @Intrepidity 9 років тому +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 9 років тому +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 9 років тому +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 9 років тому +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 9 років тому +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 9 років тому +3

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

  • @golemwardox4316
    @golemwardox4316 3 роки тому +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!

  • @AnuragPradhan101
    @AnuragPradhan101 8 років тому +5

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

    • @saeedbaig4249
      @saeedbaig4249 7 років тому

      Also Javascript. Ruby

    • @sekgo1265
      @sekgo1265 6 років тому

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

    • @obinator9065
      @obinator9065 5 років тому

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

  • @computerex
    @computerex 11 років тому

    Hi. Look into Turing Completeness. HTML is mark up, not a programming language. The reason why is that HTML code isn't actually executed at all. It is simply a way to describe a web page. For instance, your word document also has a format that describes things like where to bold and font sizes. But a programming language has to be executable by definition.

  • @Sinan97082
    @Sinan97082 7 років тому +1

    Hey Guys. I would Really appreciate it, if someone Could give me information about where To start.
    I am 32 and have Basic HTML-knowledge... But I would like To Change my profession. I intend To Work in and on It-Security. I intend To develop home and Business Applications To secure "smart" devices and/or for smart-objects (home, car...)
    I know that it is a lot of work so therefore I arranged that I have at least 4 hours per day To study.
    Question: Where shall I begin or which fields shall I combine? Data, Network/Servers? Programming and Network and so on...
    Could it be that I just should start with anyone and then go To the Next topic?

    • @qaulwart
      @qaulwart 3 роки тому

      Seeing how you have a bit of an HTML background, I would suggest you start learning some JavaScript, simply because it requires the least amount of setup (all you need is a browser, which you have), you will find yourself in a framework that you are used to and you can immediately get visual output, which is - for most people - a huge benefit in early learning. It doesn't matter so much how you learn; pick what you think works best for you. A book, a UA-cam video series, CodeAcademy, a paid course. As long as you simply get started, how you do it isn't too important.
      Once you've grasped some basic concepts of programming (variables, functions, conditonals, loops, etc), you can then leave JavaScript behind and switch to a language that is better suited for the target market you're interested in. Because you mentioned smart devices, which points at embedded development, I would suggest that you set up a Linux machine (could be an old laptop you've got lying around, could be a partition on your disk or simply a virtual machine - Linux is free after all) and start looking into C. C is an old language but still dominant in the embedded world, among others. Plus, learning C, which is very low-level (compared to JavaScript, which is very high-level), will give you a very good grasp of how your code is actually interacting with the hardware; it will teach you how code can be exploited (stack overflows, for example) and how to prevent such attacks. In other words, a good understanding of C will be a fantastic foundation for everything else.
      The reason I suggest doing this second step on a Linux machine is three-fold. First, setting up a C development environment on Windows is a pain, whereas in Linux, it is a breeze. Second, Linux is prevalent in the server world (the Internet is mainly based on Linux machines), as well as in the embedded world, so learning the basics of it will be mandatory for the trajectory you're going for. Third, it is generally a good idea two see what else is out there and understand how different operating systems work and interact with one another.
      If, later on, it turns out that you actually need Python or Java or any other language for the target job, then the plan I described here will still be fine. Once you know C (and JavaScript), learning other languages will be a walk in the park.

    • @qaulwart
      @qaulwart 3 роки тому

      Oh shit, I realized just now that your comment is three years old... well, how did your plan pan out? :-)

  • @kevind.shabahang
    @kevind.shabahang 8 років тому +5

    Fortran for numerical/high-performance programming

  • @MisterKorihor
    @MisterKorihor 9 років тому +19

    I would include SQL in the list.

    • @carlsanc3880
      @carlsanc3880 9 років тому +19

      +MisterKorihor But SQL is not a programming language, it is a Structured Query Language. Its about processing data using a set of predefined keywords and instructions.

    • @MisterKorihor
      @MisterKorihor 9 років тому

      Carlos Sanchez The problem here is the definition of "programming language". The "L" in SQL does stand for "language". Furthermore, Webster's dictionary defines "programming" as "the act or job of creating computer programs". So even though SQL is very limited in its power, it does seem to fit the criteria of a "programming language".

    • @carlsanc3880
      @carlsanc3880 9 років тому +1

      MisterKorihor I dont have time to go into that never ending debate with you sir, I asume we are all in the same level of uderstanding when we refer to programming languages here. The ability to provide OOP, inheritance, polimorphism, Overiding, overloading, dinamic binding, these are things required of a modern programming language. SQL is not a programming language, same as HTML. You cant wrap your head around that then there is no point in dragging this debate.

    • @MisterKorihor
      @MisterKorihor 9 років тому +4

      Carlos Sanchez I think the term you are looking for is "general-purpose programming language". Prefixing "programming language" with "general-purpose" conveys the meaning that the language must have adequate power and a reasonably comprehensive feature set. By the way, requiring object-oriented features is absurd. According to your definition, C would not even be a programming language.

    • @carlsanc3880
      @carlsanc3880 9 років тому

      MisterKorihor C is not a modern programming language, if it was there would not be c++, listen i do not have time to continue this, youre not even a software developer. Go and keep coding tables in SQL and dream about being a software engieneer.

  • @BlueTron97
    @BlueTron97 10 років тому +33

    Whats about Assembly??? Thats the father of all programming languages, it's fast and you can do everything, REALLY everything! You can shut down the cpu fan and burn your computer down if you like!

    • @pythonprofreak7522
      @pythonprofreak7522 7 років тому +6

      You have to learn it only when you are taking Computer Architecture (or Computer Organization) class to understand how the registers and memory work.. All high-level programming languages translated to Assembly Language which is basically a mnemonic for machine language in binary. i know if you are just joking. If you feel nostalgic try MARS and Spim Simulator. They are basically a simulator for you to learn assembly or mips without the worry of messing up your actual computer hardware if you made a mistake in your program.

    • @natevb9901
      @natevb9901 6 років тому +2

      @BlueTron97 - Punch Cards & Magnetic tape came before even that

    • @MrCmon113
      @MrCmon113 6 років тому +1

      Yeah, for one specific CPU.
      You can't shut down any PC via fan manipulation by writing some code in MARS.

    • @opiniondiscarded6650
      @opiniondiscarded6650 6 років тому

      Taxtro or Bash

    • @binaryvenus5432
      @binaryvenus5432 6 років тому

      BlueTron97 yup 😐 Assembly language is the the beast of them all.

  • @none_of_your_business
    @none_of_your_business 10 років тому +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

  • @MoJo01
    @MoJo01 11 років тому

    At least you get the concept now better than later if you are planning to work/continue working in IT field.

  • @UniInflux
    @UniInflux 8 років тому +31

    I love his hair LOL

    • @virajpotdar8104
      @virajpotdar8104 3 роки тому

      😂

    • @sankalp2520
      @sankalp2520 3 роки тому +5

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

    • @user-pl7tf9gv8e
      @user-pl7tf9gv8e 3 роки тому

      No electricity left to give the hair's static electricity

  • @TechnoTweet
    @TechnoTweet 10 років тому +14

    Learn first Pthon then C++ and you rule the other language easily.

    • @dreamingacacia
      @dreamingacacia 10 років тому +1

      I think this is really helpful...I'm learning for Py and looking for what else I really need

    • @aiman_yt
      @aiman_yt 9 років тому +18

      If you learn python first, learning C++ would be painful.

    • @XxBooSTeRHunTeRxX
      @XxBooSTeRHunTeRxX 9 років тому

      Orochimaru_Sama Why would it be painful? That's the path Im taking now

    • @aiman_yt
      @aiman_yt 9 років тому +2

      Not painful like that lol. Just difficult. It may not seem to be difficult but it is.

    • @aiman_yt
      @aiman_yt 9 років тому +3

      I first tried learning C+ but I just found it too much for simple things I wanted to do. So now I am learning C# and it feels like heaven.

  • @CodeRevolution
    @CodeRevolution 11 років тому +13

    "C++ of course..." XD

  • @salkdjfasldkfjsdlk
    @salkdjfasldkfjsdlk 9 років тому +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.

  • @nathan43082
    @nathan43082 7 років тому

    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.

  • @guitarman813
    @guitarman813 6 років тому +4

    In my opinion the best languages to learn are the following:
    Java and C/C++ - for software development
    Python - for data science and analysis
    JavaScript - for web development
    By learning these five, as Bjarne said, you really do cover a lot of domains and can carry that forward with you, should you specialise with one particular area of development. Currently, I'm learning three on the list (Java, Python and C++). But I hope to learn the others too at some point in the future.

    • @Daniel_WR_Hart
      @Daniel_WR_Hart 2 роки тому +1

      Prolog for backtracking algorithms lol

  • @razziez
    @razziez 9 років тому +14

    I am just going to go sit in a corner with my cobol. . .

    • @theodorberza9933
      @theodorberza9933 9 років тому

      +Razziez COBOL is the worst programmer insult!

    • @matsonnerby
      @matsonnerby 8 років тому +1

      Take the b outof Cobol and you get Cool

    • @evalsoftserver
      @evalsoftserver 8 років тому

      COBOL IS numerical processing Abstractions

  • @ebuzertahakanat
    @ebuzertahakanat 8 років тому +1

    Learn C for learning how to deal with hardware, Learn Java because you can do anything with it, Learn Pyhton because it is simple and quality scripting language, Learn Scala for functional programing, and learn any declarative language.

  • @rkulla
    @rkulla 12 років тому

    Define what "knowing" a language entails. Most programmers I meet say they know a language just because they know how to print and do a couple looping things with it that are common to all languages.
    It's easy to tell when someone is BS'ing because they'll arrogantly claim to know such and such language, then you ask them more about it and they immediately change the subject. Never fails.

  • @rkulla
    @rkulla 12 років тому +5

    I love how PHP is never a language listed by any renowned programmer as a language you should know (and understandably so); yet it's often the only language today's working programmer knows - aside from a little javascript.

    • @fabiolaortizsantacruz8882
      @fabiolaortizsantacruz8882 Рік тому

      Why do you say that PHP it is never a language listed by any renowned programmer? (serious question, it's for my homework)

    • @SrQuazar
      @SrQuazar Рік тому

      WTF man why would you say that!? are you fucking crazy???

  • @simonkristensen7300
    @simonkristensen7300 10 років тому +7

    I need to only know 1 language to do what I do. And I am not a prick about what I do

  • @amstorm8954
    @amstorm8954 7 років тому +3

    Top 5 programming languages u need to know : 1. mine 2. mine 3. mine 4. mine and 5. C++

  • @marcosfrankowicz
    @marcosfrankowicz 5 років тому

    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)

  • @keatonhatch6213
    @keatonhatch6213 2 роки тому

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

  • @TheCareertalk
    @TheCareertalk 10 років тому +3

    All declarative languages are roughly the same. Sample a bunch of them and learn which make the most sense. Then go learn functional programming, how to script, how to manage a database, and learn something like C. Then you'll be kicking ass.

  • @undertheapi
    @undertheapi 12 років тому +3

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

  • @rain_deer
    @rain_deer 11 років тому

    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.

  • @benheideveld4617
    @benheideveld4617 4 роки тому

    Texas Instruments 59, Fortran, Pascal, Forth, Assembler, C, Smalltalk, C++, Java, Mathematica.

  • @MoronicAcid1
    @MoronicAcid1 9 років тому +46

    LISP, because imperative programming sucks.

    • @jamesrockford2626
      @jamesrockford2626 9 років тому +2

      +MoronicAcid1 lots of modern language features come form lisp. lambda functions, maps (assoc), delegates and all that stuff

    • @wakkowarner8810
      @wakkowarner8810 9 років тому +3

      +James Rockford but Lisp does it better and cleaner

    • @jamesrockford2626
      @jamesrockford2626 9 років тому +1

      Wakko Warner
      better than C# for sure

    • @theodorberza9933
      @theodorberza9933 9 років тому +4

      +MoronicAcid1 Lisp is the weirdest most interesting language. It can be totally immutable like Haskell but in the same time the most mutable language where even the compiler and the code is mutable. The only language where you can write functions that write functions that modify themselves according to the input of the user! Programs that think.

    • @jamesrockford2626
      @jamesrockford2626 9 років тому +1

      Theodor Berza
      assembly does that as can C/C++

  • @yksnimus
    @yksnimus 11 років тому +26

    bjarne: "java"
    me: "NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO" *jumps trough window"

    • @albe8479
      @albe8479 4 роки тому +1

      c# is the way just for the ide and the framework

  • @H2CO3Szifon
    @H2CO3Szifon 11 років тому +3

    "C++, of course"...

  • @WhatsACreel
    @WhatsACreel 11 років тому

    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!

  • @KellyBeanBelly
    @KellyBeanBelly 11 років тому

    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

  • @madwilliamflint
    @madwilliamflint 9 років тому +15

    I've watched a few of these and am very surprised that no one said sql. Sql is an awfully important language, unlike any other.

    • @ViktorasMakauskas
      @ViktorasMakauskas 9 років тому +2

      sql is not a programming language,. it's on the same level of stuff like xpath, regular expressions, mongo DB aggregation engine, css selectors, in other words: a way to query and manipulate data, mostly. You can't write a "hello world" web service with sql. YOu can't write a text editor with SQL. Yeah it feels like programming language, but then again, google search query has syntax and operators also, you don't call it programming language for that.

    • @madwilliamflint
      @madwilliamflint 9 років тому +12

      Nope. SQL is a first class turing-complete programming language.

    • @huhansen318
      @huhansen318 9 років тому

      madwilliamflint I agree. SQL is actually a functionally programming language.

    • @aiman_yt
      @aiman_yt 9 років тому

      madwilliamflint Really? You can't write a game just with it.

    • @madwilliamflint
      @madwilliamflint 9 років тому +1

      Orochimaru_Sama
      Why not? Of course you can. You just need an I/O library, which you need in every language/platform.

  • @TheRevolucas
    @TheRevolucas 7 років тому +6

    I like C++, C# and Lua...absolutely love lua. I use it whenever I can, screw Java.

    • @felipegomes6312
      @felipegomes6312 2 роки тому

      C# is like Java so you saying you like C# but not Java is basically lying

  • @nokiadu
    @nokiadu 9 років тому +3

    Pure C!