Added: 8 months ago
From: bigthink
Views: 18,749
Sort by time | Sort by thread (beta)

Link to this comment:

Share to:

All Comments (109)

Sign In or Sign Up now to post a comment!
  • Agreed with Stroustrup on the main point that any professional should know (and not just in an LCD way) and have seriously worked in at least 5 languages, but I'm disappointed by his choices: Python, Java, C++, C#, C: all imperative languages. I'd really emphasize his latter point to really see what it's like to approach problems in completely different ways as with the case with functional languages (Lisp, Haskell, etc) or logical languages like Prolog.

  • I hate programming

  • i cant stand listening to him talk.

  • 1. C++ (Of course, because we can do almost anything for everything with it)

    2. Java (For multi-platform and Web stuff, i.e., everything!!)

    3. C# (A mix of C++ and Java that is very good and usefull too)

    4. Javascript (Everybody needs to know this language.. no more comments!)

    5. Python (Is, in my opinion, the best script language now, and is very interesting!)

  • @Darkheart98765 you accidentally listed java twice

  • @zombierobopirate No, I didn't!

    Java is a quite diferent of Javascript!

  • @Darkheart98765 sorry, it was a (bad) C#/java joke =P

  • @zombierobopirate Oww.. I got it!! but theoretically you are right!!! The fact that both languages run on a "virtual machine" makes them quite similar!!!

  • @Darkheart98765 I think Python's strength is more in its environment, available libraries and frameworks (Python modules). It's not really that strong from a strict language point of view (more limited support for closures, lambda expressions are not as general as anonymous function equivalents in other languages, to things as basic as lack of multiline comments which puts emphasis on the IDE to solve problems instead of the language). I still love it though.

  • @stinky472 I agree... but we already know why all this, right?? it's a script language, not one of those like C++!! but still i like it too!

  • 1. Perl

    2. C/C++

    3. Haskell

    4. Python

    5. Java

  • 1- C/C++ (if you knew one, you already know a lot abut the other)

    2- Java

    3- Python

    4- LISP (if only because it's so damn good at teaching you stuff)

    5- PHP+Javascript (one is still useful, but both taken together are essentially the backbone of the web)

  • what about BASIC? :D

  • @pufixas lol, you can't be serious?

    Basic is like playing with a rock.

  • @pufixas lol......

  • Your right I am like you say "a nobody" but I still consider computer programming ridiculously easy! I watch videos in many different languages because some of us can actually learn more than just English, and I can watch and comment what ever I like.

    I am not smart, but I am much much smarter than you, I can tell you are a jealous person, and if you was smart you wouldn't feel jealousy and call me a nobody, just focus on becoming rich & famous if that's what you call being a somebody!

  • If I was going to learn a functional language I'd probably pick Scala. Being a Java VM language it has a wide range of applications and it allows you to leverage all of the libraries and frameworks in the Java ecosystem.

  • yay he said Python!

  • C (I need to upgrade to ++ i know -.- ), Python and Haskell , that's good enough for me. Ruby is similar to Python at least in my experience.

  • pascal rulz!

  • There's only 1 you really need to know--plain vanilla C. All the languages in the past 25 years have derived syntax and semantics heavily from that with the only major differences being objects and the bloat that comes along with them. Even a runtime/interpreter isn't new as that had existed in 8 bit home computers and basic compilers before c++ was around as well as the forth language. C is still here because it's efficient clean and not big and bloated yet you can still do a lot with it

  • @SinistaN Both Windows and Linux kernels are programmed in C. Saying you can do a lot with C is an understatement...

  • @666Tomato666 Linux kernel is along with embedded asm, not sure about windows since I thought I remember reading about an effort a while back to rewrite the windows kernel in C++. Could be wrong though or perhaps it never fully happened

  • @SinistaN the one you need to know is C# (replace with any other clean language derived from C), because it has the same syntax as other C derivatives and doesn't encourage producing bloated code. C does encourage bloated code each time you need to manipulate strings for example.

    Beyond that, Asm is always a plus, knowing Delphi would be good for its beautiful OOP model (e.g. the way constructors are done) and some scripting language(s) would be good.

  • @sergrojGrayFace Except c# didn't influence C, it's the other way around or rather perhaps c++ influenced c# indirectly through java (which I rather hate however). I don't mind c# and I',m well familiar with machine language in general since it's the 2nd thing I learned after basic in the early 80's. C encourages bloated code? say what? By bloat do you mean more than is necessary or what exactly? If you mean just for strings, I still don't get it. What's so hard about strchr,strcpy,sprintf,etc?

  • Learn you a Haskell for great good Stroustrup!

  • @PoorRichardSaunders you right löl

  • @PoorRichardSaunders

    Haskell is awesome.

  • Let me count my own: C++, Python, Java, C, JavaScript, Scheme, Haskell, Bash.

    Other languages of which I know something because they are related to languages I do know: Lisp, Prolog, smalltalk, C#, objC, Clojure.

    Languages I don't know that I know anything about becaue I've never used them and aren't aware of how they're related to languages I do know: PHP, Fortran, ada, AlGOL68, COBOL, MATLAB, scala, pearl, Ruby, Eiffel, lo, Erlang.

    That pretty much exhusts what I know of languages...

  • I probably shouldn't mention this, but I will mention that I am still in school really just beginning my undergrad degree in CS. I've learned this stuff because it's fun really. If I design to focus on language design I may very well apply to Texas A&M to study with Stroustrup. I do have prejudice in favor of C+. I feel that it is probably the greatest utility language invented. It's a flexible industrial strength language for when no other language will do.

  • is this a joke? 5 languages? who has time to learn 5 languages inside out?

    how about algorithms, data structures, design patterns?

    Language is a language, it doesn't make anyone real pro. algorithms, data structures, design patterns and architecture does.

  • @h2o2m3n if all you know is python you cant do shit with it to be quite frank

  • @16m49x3 all you need to know is C# :) now everyone will hate me but language is less important than understanding fundamentals of computer science, algorithms and data structures. I really dont think language mean anything. You give me a problem i can write code/solve it for you in any language iff i understand the problem and solve it efficiently.

  • @h2o2m3n you are naive if you think every language is the best for anything. C++ is more efficient than higher level languages, period. Even if you use the best algorithm ever in java for example C++ can do it in 1% of the time, still java has its uses in webapplications, and the fact that a java program can be run on any system that has the jvm. C# is also usefull, I'm sure, but I see no absolute reason to go for it over C++. Python is slower than an ass, but it is still good for practice. IMO

  • @16m49x3 C# performance is very close to C++ and why still choose c++ over simplicity.

  • @h2o2m3n

    Are you trying to say that all languages are Turing equivalent? Of course they are.

    C# was invented by Microsoft for it's .Net platform. I would learn it if I wanted to develop something on that platform, but that just sounds like a gross thing to do. Still I would do it if I had to, to say avoid becoming homeless.

  • @PoorRichardSaunders are u out of your mind?:)) why do u need any other platform when you have windows, yeah linux is free but my time is not free.

  • @16m49x3

    Are you kidding me Python is an incredibly useful language. It's a multi-paradigm (although they're not really paradigms) language that supports, proceedual, Object Oriented, and purely functional styles of programming. It totally replaces Perl (hence why I've never needed to learn perl) for anything that requires heavy text manipulation such as bioinformatics. It's also my go to language for extensions and embedding in C++.

  • @PoorRichardSaunders The only point I was trying to get across was the fact that the other guys comment quote "all you need to know is C#" is false. tnx for agreeing with me

  • what language would you use to writer a driver? However about if you were writing for a micro-controller? An OS? An App? A compiler? (I wrote one for Scheme using Haskell, but I wouldn't advice it as way to anything more than learn Scheme and Haskell). Languages are methods for solving problems. Different levels of abstractions are required for different problems... Mostly learning languages is about learning to use the language's Standard Library...

  • where you see the same algorithms and data structures over and over again. In fact unless you know at least two different languages you never can never really even one language well. Plus outside of 50 or so generic all purpose algorithms they have reference books for special cases. Or maybe you'll have to invent it yourself, but you certainly don't need to know just to say you do.

    Yea I would say every competent professional should around 5 languages.

  • It makes sense, if you think about it current technology runs on those popular languages but, they all are the cornerstone of technology.

  • C just feels like it's going too far down this slippery slope. I think the people who hold onto C scare me more than C itself. Of course, it is very useful, especially when you're coding on the metal with things like the Linux kernel. However, if you're not interested in coding libraries and basic foundational software, but you want to create applications, I don't know if it's all that important to know C.

  • @scionicspectre The fact that so many try to use often inaccurate sales pitches for C++ is scarier yet, IMO. The fact is, most of the low-level bugs that can bite C programmers can still bite C++ programmers, but often in more subtle ways.

    While I haven't been bitten too much by C++ personally, I still prefer C; it just better suits my tastes and style. C is not stagnant, and it's not in the same state as it was ~38 years ago. IMO, it's still a very viable language.

  • @dyer85 Definitely. I've never been all that drawn in by C++. Reminds me of this fake interview I read once where hypothetical Bjarne said he made the language just to make new jobs for people crazy enough to learn its intricacies. XD

    Yeah- for such an 'old' language, C's usefulness hasn't died. Most of the important infrastructure we use is still written in C.

  • If you know C then you won't have to invest any time with syntax issues in C++, C#, objC and Java, (all of which are languages you'd want to know to create applications today) which is, for what it is worth, exactly why all those languages where developed around C's grammar.

    Having said that I never use "C" because C++ does everything just as well if not better. All my Linux programming for example is done in C++.

  • Wow, I didn't know that he's so narrowminded about programming. All of the languages he mentioned are procedural (apart from C, object oriented). Skipping his "bigthinking"

  • @someman7 I don't think he's narrow-minded necessarily but focusing on what would get people jobs today. As a language designer he's obviously going to be studying languages as exotic as Prolog or Haskell and clearly knows a thing or two about Fortran and COBOL and even Simula which he credits as a source of inspiration for C++. I do wish people would learn these other languages and paradigms though just to expand the way they think about expressing elegant solutions to problems.

  • @stinky472 I guess.. On the other hand, if schools and people weren't be pushing for these awful languages just because they're established, maybe we'd have more companies like Twitter that uses Scala, or Github that uses Ruby and Erlang. Maybe being a programmer would be more exciting then, and variable paradigms would breathe different new ideas into the industry (like functional programming did for Google with their Map-Reduce).

  • @someman7 I think so.. it is a shame how a lot of developers think they're fluent in a lot of languages because they know both Java *and* C#! :-D And I think it's sad that a lot of the new generation has forgotten about the beauty of languages like LISP (beyond the immediate syntax: its uniformity and consistency and flexibility). It's a problem with the industry, I think, and the nature of the jobs today.

  • @stinky472 i'm not sure what you mean about lisp. I like it for its syntax ;-) And uniformity I guess derives there from. Any lisp's functions or applications of lisp to illustrate the rest?

  • @someman7 One of my favorite applications was Mirai, implemented in lisp. As for functions, I think it's quite interesting that defun is itself a function defining a function. I think the syntax throws some developers off though, like (< x y) instead of x < y (prefix notation for things that would be infix expressions in many other languages).

  • This guy invented c++

    Im a high level c# idiot.

  • His neck muscles are fascinating.

  • hard core man

  • C, C++, Lua and Shap

  • yay!!

  • Assembly - You should know the lowest level of communicating with a processor

    C++ - the most prevalent language on earth, the most commercially viable and the highest language where you control almost all of the underlying mechanisms (no built in memory management)

    Lisp - A fundamentally different way of programming and capable of implementing many modern techniques with it

    [Functional language] - There are several, good to learn so you can think differently

    Java - Heavy weight language

  • What a bunch of incoherent rambling. Of course I'm not blaming mr. Stroustrup; if you just ask that kind of meaning-of-life broad question and start shooting, I don't think anyone can give very insightful answers.

  • I cant help but to disagree!

    I'd say learn one language in each domain meaning:

    web app: PHP, ASP/.NET,AJAX, HTML+Javascript or JSP

    os app: C/C++/C#, Java(SE), Pascal* or Basic(VB6/.NET)

    mobile app: Dalvik, Java ME, C,C++,C#,Objective C

    *(a bit outdated now)

    as for Python and Ruby and what have you I think they belong to Academia not to the real world. The IT professors are trying to force them on IT students but nobody cares.

  • @igrewold You do realize that a ton of the stuff Google is doing is done in Python right? It's also the 3rd most popular language on Github, and typically in the top 5-7 languages in most any list I've ever seen that measures job postings mentioning languages. So I definitely do think more than just a few somebody's care about Python.

  • @pedlezelnip They used to say the same thing about Pascal back then but it is all Academia. Academia is a language that is packed with loads of crap and can do everything but it expires once the Fad is over. so give a decade to Python and mark my word it is gonna be history. Just like its ancestor Pascal.

    Academia my friend that is the word.

  • As an embedded systems engineer my top are C#, C++, Python, Java, Varilog, and VHDL

  • Funny how he didn't even mention D, which is light years ahead of C++ and all the programming languages he listed. Also funny how he didn't even mention Haskell when it came to functional programming languages.

  • @FlameHue Actually it is funny that you think D is worth mentioning within this context. Virtually no one is using D, despite the fact that it seems like one day it might be a decent alternative to C++. D, whether you like it or not is a toy language at it's current stage of development.

  • @popasmuerf The only toy language here is C++, and the only reason people like you have taken it seriously is because so many kids have decided to play with it.

  • @FlameHue So C++ is now a toy language? You must be on crack. People like me take it seriously because it is a language that was the industry standard for damn near 15 years between the late eighties and early 2000's.....and is still being heavily used and maintained now...but somehow D...a language most CS grads never heard of, has no real STL worth mentioning, is a "serious" language? GTFO!

  • @popasmuerf I would say there's nothing wrong with the D language. From what I've heard about it, at least, it seems to be a step forward in the language world; just because CS grads haven't heard of a language does by NO means make that language a bad language. CS grads (i.e., Acadamia) learn what they are told to learn. The only reason why they haven't heard of it is because it's not big...yet. However, I must say C++ is definitely NOT a toy language either, and FlameHue is wrong.

  • Erlang is neat, and seems to have gained some popularity recently. Seems very suited for writing server software with it's language-level focus on stability.

  • C#>JAVA

  • It's not about any specific languages (in a way). The key is to be able to produce software within a reasonable time with high quality, valuable features and in a format that the client can use it. For example, almost everyone has a Java VM installed and that is why many companies focus on Java.

    It is pointless to learn languages just to get hired, because that way, you won't. If you rather focus on making software that you like and that makes a difference in the modern IT, then go for it. :)

  • I think C/C++ and Java and u r ready for the world...

    PHP, JavaScript and SQL - for the web...

  • In my opinion don't learn anything microsoft developed ;). vp , c#, .net framwork just throw it out. Personally I am working on learning c++, perl, php, bash scripting, mabe a little bit of python. but yea thats me.

  • His answer: C++, Java, Python, [insert functional language here]

    "As a result you'll know": Javascript/Ruby/C/C#

    "Take any 5 of those and you'll know the rest"

  • Comment removed

  • @kramtark Is this a service for the deaf?

  • I know C#, a bit of C++, VB, HTML, a bit of PHP, a bit of MYSQL, a TINY amount of ASM, and I know Digital Logic (Don't know if this is considered a programming language though). Oh and a bit Javascript.

  • I'm stupid , I can't learn programming , just can't understand it

  • @Cobac comp sci isnt really too difficult. as long as u can explain how to do something in coherant steps, u can program

    I hear visual basic is a good starter language. I did java. its a terrible language, but its commonsensical at6 the introductory level

  • @Cobac McDonalds is hiring.

  • @WinterXL nice insult , funny but still an insult , though i don't take it personal :D

  • @Cobac I guess it does sound mean, but I was just joking. :P

  • @WinterXL changed my mind , it's not an insult considering it's a truth :( people sometimes start low

  • @Cobac Have you tried Python? As an introductory language I don't think it can be beat. I teach it in grades 3 thru 8 - fairly bright kids, admittedly, but at an elementary level it is very easy and fun and useful. Then you can very gradually learn & incorporate harder aspects, as you like. If you would like an elementary intro. let me know & I'll send you some stuff.

  • @Cobac yes you can man, it just takes patience and persistence to get to the point where you are like whats next. From there the options just increase. Java is easy c and c++ are for the insane ones like me. Assembly is for gods (lol). Well you could always try python and if you learn than easy then java should be easy

  • @DamarSweetness He might not have the constant time and care to learn any form of a language. Someone like yourself, who knows various coding languages can agree, that it is vital to keep using them as much as you can to learn them.

  • @Cobac i hate to admit it but im a red-neck high school drop-out who often gets "schooled" by 8 year olds but i learned to program in just a few weeks. Its twice as easy as learning spoken languages like german or spanish. If i can do it, you could master it in days. Now if i could just be good enough to get a programming job. Oh, wait,, high school diploma, dont have one.

  • @BUNCHofxs I have a high school diploma, but I don't think anyone has ever asked me about it. I don't have a college degree. What I do have is 25 years of experience as a programmer. My advice if you want to go down that road, is to start off simple. Find someone who runs a small business that wants some sysadmin type help, and write small scripts for them when you have the chance. Always be alert for new opportunities and places you can expand when and how you code.

  • @BUNCHofxs

    programming is not just about knowing prog. languages and different techniques(OOP, functional, some thing else i can't remember). there are a few engineering principles that you must understand and branches of math to be software developer - and that is the the minimum.

  • @Cobac

    Debug your mind, keep trying to find the wally!

    good luck!

  • @Cobac

    I had to learn Arithmetic, Algebra,Analytic Geometry, and Calculus all by my self.

    It was extremely difficult because I had no one to ask questions when I didn't understand a concept. It took me years! I understand Mathematics at a very high level, I have even made

    a couple of discoveries that perhaps one day I'll share with the world.

    I tell you this because I want you to understand that you are not stupid, you just need to work harder.

    p.s. Solo trabajen duro!

  • @Cristoviolanalgonas1 You're a nobody, quit thinking you're something and stay away from these videos (just some advice).

  • @Cristoviolanalgonas1 What you said is very important for the upcoming generation. Like Einstein said, it's not that he solved problems quicker, it's that he stayed with them until he solved them. You won't get that knowledge if you don't work for it.

    Also, let nobody harshly put-down your progress.

  • @Cobac

    You know for a long time I felt the same way. I even got a book on BASIC a long time ago, hoping a friend who was a very competent in BASIC an C could help me through it. I wish I still had that book so I could see what I found so confusing. What got me over the hump eventually was learning my first language (C++) in a classroom. When I had learned enough to get the big picture the damn broke and everything was easy after that. As a consequence I can teach anybody how to program now :)

  • @Cobac

    I thought the internet had higher standards than "I'm stupid" to top a comment.

  • @blacksilentA99 You make no sense , the internet as you say is no person . Neither are the users of the same intelligence .

  • @Cobac

    Seems like you're on the lower end of the intelligence curve if you didn't comprehend what I said was a joke.

  • @blacksilentA99 of intelligence you dont need to add the in front :)

  • 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.

  • Great to see a Dane on Big Think

  • What you say is true about the overlap. I found the switch from C# to PHP amazingly easy. Objective-C, same. In reality, though, syntax and style are easy to learn compared to programming logic. Once you've master OOP and MVP, everything else comes fairly quickly.

  • @tiggeresse yeah, i find the same thing happened to me. i first learned with java, then went to c#, c++, AS3, PHP and really, the concepts common to all programming are the only real hurdle, syntax is easy to learn, and since code is readily available you don't need to memorize it, just need to have an idea of existing class or object packages.

Loading...
Alert icon
0 / 00Unsaved Playlist Return to active list
    1. Your queue is empty. Add videos to your queue using this button:
      or sign in to load a different list.
    Loading...Loading...Saving...
    • Clear all videos from this list
    • Learn more