The five languages were: 1: Javascript (for the web), 2: Java (for soul-crushing industry jobs that get outsourced), 3: Haskell (for very smart people), 4: C (for low level jobs), and 5: Perl (because he invented it and is biased on the matter).
***** Right, he said "any scripting language", with a bias towards perl because he invented it. Lua is a bit obscure in some sectors but it's very common in the video game industry. It's really good at interfacing with C/C++ programs, and for embedding within a larger program written in C/C++ (like games) to do higher level stuff. For historical reasons it also has a lot of libraries for machine learning. It also works great for the stuff that you'd do with Perl, i.e. automate simple command line tasks. The downside is that it doesn't have a lot of libraries, as the general culture tends to trend towards building everything from scratch. Imho, the best first language is one that is good/commonly used for the kind of problems you happen to care about at the moment, because you will naturally want to play around with it and learn more about programming. If what you want to code is say, a WoW addon or a machine learning algorithm, Lua is great. For things like making a website or a phone app, Ruby would be a bit better. But having learned one, moving to the other will be fairly easy so no time spent using either will be wasted doing the other.
Man, Larry Wall is so awesome. I love his thoughtful mannerisms. He genuinely wants to reply in the most intelligent fashion he can muster. Instead of some fake affectation lol.
dwede1man apl is nice if you put small ruby letter like Furigana in Japanese manga over the operators so that you can read what the operators are. There are nice emacs atom vim plugins that replace characters with all symbols.
storerestore Python is a scripting language similar to Perl and Ruby. I could also argue that Perl is a programming language, but we don't call them such.
Define "we". If you meant to say "I", I can tell you straight away that I'm not particularly interested in your personal opinion on such a well-defined matter. If what you say is true, I am sure that you can find a reputable source that validates your sentiment.
Exactly true, what he said still stands 10 years later. There’s only the addition that TypeScript is here to stay to simplify JavaScript, and obviously Python has completely replaced every other scripting language and taken over the scientific community. All the reasons he gave are very well founded as well. A very insightful video.
I started learning C a few weeks ago. I've worked with a few other languages over the past ten years or so (PHP, ActionScript, Javascript, etc.), and I am very impressed with how C works by comparison. I've never been a fan of the looser languages, and it's also nice to see how close you can get to machine level with C (if you want), but still pull off fast and powerful actions with basic code. Still a rookie, though, so I have a long way to go.
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
Jerome Potts INLINE LINK PROGRAM LINE NUMBER ,TO A PROCEDURE ORIENTATION, NOT DECLARATIVE OR STRUCTURAL ORIENTATION LIKE OBJECTS BASED LANGUAGES WHICH LINKS DATA ARRAYS ,A MORE EFFICIENT REUSE OF RESOURCES
He is a great mind, and he is really spending some time in thinking about the languages. Perl (which he is the author of) is a great contribution to the software world. He deserves respect.
I was born 10 years after you wrote your first program :) I have been working in Java for the last 14 years, and I'm about to retire... Java had ups and downs, but It was always good to me. I was never part of a team that didn't deliver, and I'm also grateful for that. Last company I worked for: NOVELL. One bit I might have forgotten to say is that I never finished college. Hackers by heart would learn to work with what they have instead of complaining :) enjoy yourself a little while at work.
Whatever your 5 are they should include: 1) one compiled, imperative, object-oriented language (Java, C++, C#, etc.) 2) one functional language (Scala, Erlang, Haskell, oCaml) 3) one imperative, scripting language (Ruby, Python) Depending on what your focus is (mobile dev, front-end dev, backend dev) the depth to which you want to know one of these types of languages compared to the other types will vary.
Pedro Lopez Assembly is not a language in that sense (or yes it is, tzillions of languages, one for every iron you try to program) Efficiency differences between C and hand-tuned assembly are minimal nowdays. C compilers are so effective.
muhahahabad I know optimizing compilers are really good these days but assembly IS a programming language, to be pedantic it is Turing complete. But assembly is very good at teaching someone how computers really work and a stepping stone to C. C is important due to it being so lightweight and therefore very important for mobis and embedded systems. C also develops an appreciation for type safe and garbage collected languages.
Pedro Lopez Do you know how your TV works? Or your CAR? In every single detail? Do you know aeroplanes etc? If you answered 'no' to any single question above, does it hinder you to enjoy using those products in your everyday life? Do you need to be an aeronautical engineer PhD before you can buy a flight ticket and fly from London to NY? Pedro. You are simply lost. Assembly or C (or C#/Java, neither C++ or whatever) is never needed to be productive with higher abstraction programming language like Smalltalk, Ruby or Python. Why would a Python programmer care if CPU down below uses registers, stacks or whatever? Or how memory is allocated, pointers used etc. That's useless garbage to know if you are a higher level programmer.
@@SuperNuketown2025 That's as close to the metal as it gets. My grandfather worked for the military in the late 50's / early 60's and told me about the times when he, at the end of each month, had to deliver suitcases filled with punch cards for archiving/testing reasons. Wish I could travel back in time and visit those facilities.
People tend to forget that you can write object-oriented systems in C: the syntax doesn't explicitly help like it does with C++ you but sometimes implementing the concepts yourself gives you extra flexibility.
C: Simple and awesome. Gives you everything you need to program a computer. JavaScript: Incredibly misunderstood language. 90% carbon, 10% diamond. Surpasses many languages just with the diamond part. Julia: This should be the C of dynamic languages, seriously! This is Python done right. Haskell: Fun. sh: It's the shell, helps to know.
Im new to this but i dont know why i hate python . or i just hate the things that everyone learns maybe I m using c rn . planning to continue with ruby (just coz i love its name )
5 languages everyone should know **ABOUT**: JavaScript, Python, Java, C, C++ My favorite 5: Java, Python, C++, GolfScript, Groovy 5 languages nobody should use (anymore): PHP, COBOL, VB, VBScript, Objective-C
What's wrong with PHP? I get that is lagging behind a bit but I prefer it to python (although python is a *joy* to use, PHP seems more suited to websites) for server-side scripting (Websites only). And Objective-C: What else are people supposed to make iOS apps in? I agree with the other ones though(I'm only 13).
mikedfdf Jobs PHP is very popular, but that doesn't mean it's good. Here's an article about what's wrong with it: me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/ . Some of the points are being disputed, but even if you only accept 10% of them, I think it should be enough to kill it with fire. Regarding Objective-C, I'm quite biased against Apple, but ignoring that, I think Apple should ditch that language and switch to something more decent, then app developers can switch too.
Tecnovlog 1) Currently that's true (except perhaps some frameworks that generate obj-C code). 2) I use java myself, but for people who find it obnoxious or hard, I recommend python.
Functional Abstractions Meaning how functions are expressed in a PREDICATELESS WAY without reference any Order of PREDICATES Meaning Syntax or PREDICATEs being ORDERED like in FIRST ORDER PREDICATE LOGIC
Native php is dead - writing a web app in it requires skill, an in depth knowledge of input sanitization, security and way too much time. Although at least it has decent cross platform support unlike the language its based off (C) and its mess of platform specific libraries. Looking at you Windows and your maze of int return type def re-naming. php Frameworks like Laravel are still very popular because development using them is fast, easy, force you not to mix views & controllers and all the security and sanitation more or less is done for you. fun fact officially php is written in all lower case.
I hate it when people say..C is good for nothing....I am electronics and computer engineering student....I am fluent in 6 languages including C and my friend C is my life. C still rules the embedded world. Don't underestimate C. When you go to an IT college or a engineering college...or study computer science...the first language they will teach you is C. Its is really important to learn C not only because other languages are based on C also because C shows you a basic pictures of how the lower levels of a system works...!! If you can't code C...you are probably going to be a shity programmer.
I'm a computer science student and the first language we were properly exposed to here was Haskell (second was Java). C has been touched on in other courses, but not to a great extent. I'd say I was a shitty programmer, but more because of a lack of experience in general than a lack of knowledge of C. You can be a good programmer without being able to code C, just as you can be good at speaking English without being able to speak Latin (or having a knowledge of linguistics).
MisterM2402 C does tend to introduce lower level stuff that most languages don't. In turn that helps a lot imo since you are forced to learn how things actually work. Especially in embedded programming. Not to mention the cool stuff you get with UNIX(-like) systems.
Thank you in my area once upon a time everyone was going nutso over VB, but I trusted my gut and stuck with C, C+,C++ etc...Then one day the demand for VB disappeared. Everybody wanted C and its' successors, I love it when I'm vindicated.
My top 5 - JavaScript w/ Node.JS (for any project that needs asynchronous tasks) - C++ (for heavy computations) - Haskell - Julia (for science stuff) - Ruby (for begginers)
There's no question that C and Pearl are great powerful language. It's just some of their syntax are cryptic and counter intuitive but somehow we got used to them last a few decades. I personally find that interesting and amusing. It's something Ken Thompson wanted to use for himself (the language B) and somehow became a standard for everyone because of UNIX, IMHO.
Missed the most important of all, assembly, it is the only language that can do anything that can be done. There is nothing faster and speed is important. It can interface with anything. And let's not forget, without assembler there wouldn't be any of these others. ;)
Assembly would be worthless without machine language. The lambda calculus, on the other hand, is universal. It can be used to compose programs that optimize programs, to proof the correctness of algorithms, and to compile them into machine language. Or assembly. Or C. The only drawback is that it has to be implemented in order to run. But once you got that, it really easy to write a compiler for your own language in it! (Oh, wait… Error code 22…)
Yeah but if all programmers had to be math nerds we would be at a serious shortage of programmers. Much better to have languages that represent logic rather than math.
Idk. I see the same debate here as everywhere else, functional vs imperative. I definitely see the efficacy in functional programming. But, I have mind more oriented towards language than math, so I go the other way. Learning C more intimately, looking to work towards assembly from there. Happy hunting ya'll.
TropicalPriest Assembly and C are not any more like natural languages than functional languages are. (I'd say they are even less so.) The closest programming paradigm to natural language is probably object oriented programming, in particular Inform.
My take, in no particular order - Java - JavaScript - VBA (if you work in a typical office environment and use Excel a lot) - C (learn how to program properly with a strong typed language) - Assembler (to really understand computers)
Alot of people seem to have the view on programming languages as they have to choosing a partner in life, "choose one and live with it" kind of attitude. I never thought like that at all, you learn the language you need for the moment, or for the problem you want to solve. There is ofcourse a slow learning curve if it is your first language, but when you start to understand programming and how computers work, and you have that feeling of confidence you can pick up a book or a tutorial and take on any language you want. I would say, learn C. Because it has so many compilers for so many architectures, if you want to get into microcomputers. There is a C compiler for almost every architecture. Also if you want to take on something else later, alot of languages (scripting languages also) looks like C. If you're still not interested in C, or any kind of low level programming. You can do so much with just JavaScript, and you can do it now without downloading large compiler tools or IDE.
The best Programming languages you need to know: 1-Java (Develop softwares,Android Apps,Games,.....) 2-JavaScript (Web develop and Web design) 3-Python (for Sciences,Hacking,...) 4-SQL (Data base,Dynamic Web design) 5-PHP (Dynamic Web design) and if you want to add annother c language to this list i would say C++ because c# is very similar to java and knowing c++ helps you work with c. That is all you need to know as programming languages.
Even though they are old, Common Lisp and Scheme have some mind blowing power. Programs that may self modify and change syntax at runtime. Heterogeneous collections. Code is data to be stored and manipulated. Macros that can build functions during runtime while letting you put code inside. All stemming from a single unified concept of the lambda function and CONS cells. Not taking huge concepts and trying to jam them together then provide safety measures. If you like recursion try Scheme, if you like iteration go with Common Lisp. I find Clojure too much of a departure from the previous two but your mileage may vary.
+James Smith He DID say COBOL. Larry Wall has studied linguistics and created an entire programming language with the intention of making it more like a natural language, so no, he doesn't exactly come off as the type to mispronounce the name of a well known programming language.
+Thor Christopher Arisland Am I the only one who read the text transcription of his talk? The transcriptionist goofed and it is there for those who care to look.
The languages were: Javascript (for the Internet) Java (for high-level jobs that get outsourced) Haskell (for geniuses) C (for low-level jobs) Perl (because he invented it and therefore prefers it over Python and Ruby)
Python, C++, Javascript, SQL and Julia are the 5 that I know. I spent some time using Java for Lambda in AWS as well. I suppose HTML, WAS and PHP should be in there too. Honestly, it really depends on the job. Mobile game development and VR? C# with Unity. Desktop/laptop gaming? C++. Android app development? Java with Android SDk and XML. Numerical computation? Julia. Web? Javascript/CSS/ HTML5, PHP, SQL, Ruby on Rails. Scripting and other things? Python. Honestly, just start with Python and go from there. Use Python to get a grasp on basics of programming and then decide what you actually want to do and then focus on a lang suited for THAT specific task or project
It's interesting that he picks Javascript as a first choice, and mostly brings up Java due to the large amount of legacy code which is written in the language (at least that's my interpretation of the quite amusing "COBOL of the 21st century" remark). I think it's especially interesting since, back in 2011, the whole nodeJS/npm ecosystem was still nascent and Javascript was still very much a browser language. Turns out that he was largely right. Pretty good vision there.
Right now, I'm focusing on JavaScript for projects, but I'm learning C/C++, Python, and Java. I find C++/Python helps me approach programming from an algorithmic standpoint, and, Java forces me to think more architecturally (like how am I going to structure this, so it's not a behemoth of code?) My next languages I want to learn are Lua and lisp/clojure.
My List: - Python (Covers the base for scripting languages, helps to understand Javascript/perl etc) - Java (A good OOP language that everyone asks for) - C (A solid understanding in medium level prodcedural languages help a lot, like learning latin really) - x86 or ARM Assembly ( A knowledge of assembly is fundemental to knowing how a computer actually works. x86/64 and ARM are pretty unanimous). - a Lisp Dialect (This helps cover the confusing base of functional languages)
Here is my experience from working in the IT department of a very large and very well known company: Java - As Larry said, this will be your manager's preferred language (aka YOUR preferred language) because it's sort of a de facto industry standard. We're currently switching all our Ruby stuff to Java as part of a large, expensive, and long lived project mostly for political reasons rather than for the performance benefits. This should be your strongest language. Some scripting language (Ruby, Python, Perl, JavaScript...) - just pick one to learn well. Chances are your job will use a different one just because there are so many out there but they're easy to pick up and pretty similar in their function and capability. Know at least one VERY well. C++ - Most applications won't use C or C++ but knowing how to leverage the capabilities of getting down close to the metal is something that can be very helpful for certain problems. Also like Larry said, most higher level languages are actually implemented in C or C++. These are "genesis" for modern programming. I'd would say be proficient enough that you could whip up a quick dirty implementation for a given problem with minimal outside help on short notice. COBOL - Yes, businesses still run COBOL. The very heart of our operation runs COBOL code some of which dates back to the 70's. We've spent billions, with a "B", to keep it going throughout the years because it was poorly documented and slowly turned into a pile of spaghetti no one wants to touch. We're now spending additional billions, again with a "B", to completely replace it. Be able to read it and maybe make minor updates. Lastly, some functional language (Lisp, Scheme, Haskell, F I think) - You will never use this outside of one class in college. Learning these does teach you a new way to think about programming which is massively helpful in understanding the theory behind programming languages and computation however the only time you will actually use this is in a metaphorical dick measuring contest with someone who claims to be proficient in 20 languages.
I am endeared to Larry Wall as a person and his creative outlook on programming; I was never a Perl programmer but I've known a few and sounds seems like Perl had a fun, colourful and busy community at it's peak; would be nice if languages today had quite that flavour of community. However I feel it's era is past (may be wrong!), but I couldn't imagine anyone learning Perl ahead of Python, Ruby, Java, etc. except on an old school Uni course.
JLock17 Alternative to dying: find a language that isn't overcomplicated and poorly designed. I would recommend Python, because it's relatively easy to read and understand, and you can write simple programs with very little syntactic overhead.
just drill yourself about Types and Pointers. these are the things that make C++ hard and useful. get comfortable with making classes and using them, that's important for many languages. hang in there, cuz once you got a good grasp of C++ or C you can start understanding the whole shebang pretty well.
Pointers are not that hard. Reference and pointers are two concepts that if explained correctly from the start it all makes sense. Once you understand them you can understand how things work for almost every other language. Every Programmer worth their salt has to learn about memory management imo.
I put Perl at the top of the list simply because it has the best documentation for people who want to learn the basics of programming. There are thousands of excellent books explaining Perl. Once you know one language, learning other languages is much easier.
9 лет назад
At a low level of if you have tight constraints I've found that there's nothing to beat the combination of C and assembler. 'Back in the days' Borland's Turbo C was great. It allowed you to see the assembler that the C code produced so you could use C to write assembler. Developer productivity wasn't as high as it was for modern day languages but the user's productivity was many times more - and that counts.
They're kind of similar. I wouldn't go so far as to say they are very similar. C++ Is a bit easier than C although it's still quite a tough first language to learn, but if you learn C++ first, you essentially learn an extremely useful and powerful language while getting all the scary bits out of the way so when you move onto say, JavaScript, you'll already know how to implement certain ideas in your code.
They are *not similar at all*. C is minimalist and can be hand-translated to assembly if you so wish. On the other hand, C++ adds polymorphism, virtualisation, templates, runtime object information, and all kinds of other stuff, but in doing so, slightly worsens performance (features can be disabled at compile time though), and gives inexperienced devs even more rope to hang themselves with.
Shien The Kid I absolutely wouldn't say they're not similar at all, and definitely not in bold. C++ is almost a superset of C. C++'s creator said "incompatibilities between C and C++ should be reduced as much as possible in order to maximize inter-operability between the two languages". Of course, C++ has all the things you listed tacked on as well. But you can't say a square and rectangle aren't similar at all.
Learn C first (but learn it completely). It's much easier than C++, and you'll also grasp some basic programming knowledge before you jump into objective oriented programming.
The worst part of being a developer is talking to other douche bag developers who think they know it all. Me: the sky is blue. Them: Well that's stupid to say that because that's not the most efficient way to go about doing that. The sky is actually black, but when white light shines through a prism, the light is separated into all its colors. A prism is a specially shaped crystal. If you visited The Land of the Magic Windows, you learned that the light you see is just one tiny bit of all the kinds of light energy beaming around the universe--and around you! Like energy passing through the ocean, light energy travels in waves, too. Some light travels in short, "choppy" waves. Other light travels in long, lazy waves. Blue light waves are shorter than red light waves." Bro stfu I don't need this write now. lol
+Jay Bartgis sounds like people try to stop you from making problems for scaling and you think they're just talking shit cause they think they're great. they're probably trying to help you not destroy the company ^_^;
HTML, CSS, JavaScript, PHP, SQL (in this order). With the these languages, any business idea you have, you can build a Wordpress. These are good languages for a resume if you're looking for an office job also.
Put simply, Object Orientation is "thinking in objects". if a language can give you that, then it is object oriented, there is no hidden message to the words "Object Orientation". If you can model real world entities and their relationships perfectly, then it is Object Oriented.
So you can add new stuff & have it hook into existing software. A lot of things allow you to call methods on objects over a network. But almost none of them implement returning an arbitrary polymorphic type, because it means the caller has to be able to download the implementation of new types, which contain new executable code. Java is the only commonly used platform that allows doing this safely. JINI brings it all together into a robust system.
1. C (ANSI) - essential to many things, least of all low level OS programming 2. Java or C# - a JIT-compiled garbage collected OO language for large scale commercial development 3. Haskell or F# - statically typed functional programming language to meet two crucial demands of modern day computing: data manipulation and parallel programming 4. Javascript - indispensable tool for the client side, when everything is going into cloud 5. C++ (and/or Objective C) - native OO useful for many things
I'm a game programmer , each Programming language has it's own advantage and disadvantage .. for me C++ is Great choice for game programming .. i can't tell you what to learn .. ask your self what do you want ?
One should start with a language that makes you understand the processes and with which you comprehend how to make algorithms and functions. In my school we started with Delphi(Pascal).
I would say that if you learn javascript, python, php, and Java or C# you will have all basis covered. It is a bit deeper than that since learning those languages mean you will be learning their respective development environments (MERN Stack, Django, Laravel and mySQL, SPRING and .NET)...you will be learning more than just 5 languages...but as a start those 5 (or 6) will make you well rounded
Just ignore the really advanced stuff like CoMonads, Profunctors, Arrows, although learn about how to use Lenses. At first use the IO Monad and maybe the State Monad (which is almost the same as the IO Monad hahah). Don't try to write your own Monads or MonadTransformers. Recursion is easier to understand than Folds unless you are using a function (Monoid) that is associative. Use the applicative functors (generic map) and to work with collections and monads. Have your IDE, or use Holes (Haskell holes) and hoogle autocomplete hard things for you. Use trace, unsafePerformIO, and splitting big functions into lots of little functions for debugging.
Honestly, as a beginner who started this week, list comprehension is so nifty and very minimal. Looking forward to learning more... in the coming weeks.
I'm a fan of the R (formerly S+) system for statistics and graphics. It's much like many procedural programming languages, but is much better suited for exploratory data analysis. Even its displays are treated as objects, and it has nifty features such as named function arguments with default values.
I would say the five programming languages everyone should know about even if they don't want to know programming are: C, Java, Python, Go, and probably Javascript.
Java the language is a high verbose and imperative language, and is not so strong object oriented (primitives int vs Integer). But we need to disjoin the language from the platform. And that is the key for the success of Java, the platform is very well founded and the JVM, libraries and frameworks are the ones that make Java the top used platform. The best thing Sun engineers made, was the separation between language and JVM, today we have lots of languages running on the JVM all competing to take the Java language throne, or to complement, and all the languages have some level of interoperability. I think the most promise is Scala, because is a language that is bringing a interesting ecosystem (frameworks) and is a mind paradigm shift for the developer but with a graduation step by step from imperative to functional
Paul V Barbar Try learn scala or haskell for the perspective of java in a couple of weeks... In haskell you will need to forget everything you know and start over, in scala you can take some things but they are just 1% you can't master it from this perspective.
Giovanni Silva Dude,whatever you do,stick with one language for some time.,try to do all kind of stuff. Go deeper in one language..So starts with core heavy language that evolved in time..Its a painful and lengthy process,but its the way.. if a guy,say he know some c , little python,some okay javascript. He is not any better than a guy who knows expert java(or any language of your choice).
Paul V Barbar I agree. It takes time to learn a language and more time to fully work with it and everyone should know deeper at least one language. Let me reformulate my point: I know once you learn Java the syntax is similar to a huge number of object oriented languages. That is because Java is inspired in C and other languages inspire in both for it popularity. But someone that master the Java language with decades of experience, can't say that will learn every other language, in fact they could take more time to learn complete different paradigms because this person will try to make things from the perspective of the Java language, that is more natural for him. A language is like a tool for get the job done, if someone know only one, lets say this person have only a hammer and the problem requires a parafuse, this person could get the job done with some blood of they eyes and fingers :-) instead of a elegant parafuse solution. I agree that know superficially a huge number of languages is not the way to go. This simile is a rough simplification cause languages are more than tools, they are a expression of think. But know different languages deeper enough (not need to be a expert) let the programmer to think beyond the limitations of one language, and let the programmer to think in more wise solutions, even for its main used language. I believe know multiple languages, specially multiple paradigms like functional, imperative, logic and object oriented, can make a better programmer and should be part of the continuous evolution of everyone
As a mathematician, I think Haskell is absolute beauty. I work in C/C++ (and commonly name C as my favorite) but if I could find a Haskell job, I would take it in a hurry.
If you can program in C, you can pick up the other languages. Learning how to use pointers and debug programs with pointers is an invaluable skill. I learned C in college. Lots of students had trouble getting programs to run using pointers. Lots of students had trouble with the whole idea of recursion. I think if you have experience debugging programs using pointers and recursion, you can pick up any programming language.
Eduard Karesli Java was originally an attempt to learn from C++'s mistakes and do a better job of providing object orientation, with networking in mind from the outset. So if you learn Java as Larry suggested, learning C++ would be pretty much redundant. It might help you get a job in a C++ shop, though.
hubomba I am not saying you are wrong, just want to say that from the start. However I would say that pointers are more of an abstraction of assembly rather than machine language. even though you have to do some memory management, it isn't the same as what computers do. C++ or rather the OS does most of the heavy lifting for you. you also don't have to care about registers or memory allocation or anything like that.
Lisp will always be on this list, I think. It's probably the most beautiful, simple, and versatile programming language family ever conceived, and it has been for a very, very long time. And as much as many people say otherwise, Lisp is still very relevant. I use it all the time at work, from tinkering with my emacs config in elisp to writing webstuff in Clojure. Even so, Haskell is best language.
My List: 1) C/C++ for low level stuff. 2) Python for data science, AI, and machine learning. A good beginner language. 3) Javascript because knowing at least a little is necessary for web development. 4) Clojure for full stack web development and because it's one of the most approachable functional languages for beginners. I'm also excited at the future possibilities for Clojure in the fields of data science and machine learning. 5) Java because my university made me use it for a bunch of projects.
Java Python C++ (especially 11 if you haven't tried it it;s great) javascript - (Don't like it but you have to learn it.) scala - (functional and object oriented)
Here is more top five: 1) R, 2) R, 3) R, 4) R, 5) R, Don't say that the only thing that R is good for is statistics. You can write loops in R, accept standard input and output, and write scripts in R. Oh, and you can even make webpages with Rshiny.
Want to get Smarter, Faster™?
Subscribe for DAILY videos: bigth.ink/SmarterFaster
Yeah. Great transcription. “Cobalt”, uh I think you mean COBOL.
The five languages were:
1: Javascript (for the web),
2: Java (for soul-crushing industry jobs that get outsourced),
3: Haskell (for very smart people),
4: C (for low level jobs), and
5: Perl (because he invented it and is biased on the matter).
Python is becoming more ubiquitous and definitely worth knowing over Perl nowadays
+Remram
Right, Python is sort of becoming the new visual basic.
Does VB.net have two incompatible versions called 2 and 3? 😬
I'm glad he's honest about why he chooses Perl as number 5.
***** Right, he said "any scripting language", with a bias towards perl because he invented it.
Lua is a bit obscure in some sectors but it's very common in the video game industry. It's really good at interfacing with C/C++ programs, and for embedding within a larger program written in C/C++ (like games) to do higher level stuff. For historical reasons it also has a lot of libraries for machine learning.
It also works great for the stuff that you'd do with Perl, i.e. automate simple command line tasks. The downside is that it doesn't have a lot of libraries, as the general culture tends to trend towards building everything from scratch.
Imho, the best first language is one that is good/commonly used for the kind of problems you happen to care about at the moment, because you will naturally want to play around with it and learn more about programming.
If what you want to code is say, a WoW addon or a machine learning algorithm, Lua is great. For things like making a website or a phone app, Ruby would be a bit better. But having learned one, moving to the other will be fairly easy so no time spent using either will be wasted doing the other.
Man, Larry Wall is so awesome. I love his thoughtful mannerisms. He genuinely wants to reply in the most intelligent fashion he can muster. Instead of some fake affectation lol.
This interview must have been written in Java as it took 6min to what could have been said in less than 1min.
NAILED !!! :)
waaaaaaaaaa
HAHAHA
Joshua Smith lol
Yeah we need interview written in c or assembly
Haha.. "Java : It looks like you're getting a lot done"
I immediately hit 👍 after hearing his brilliant shoe leather analogy
@@DanDeebster i laughed so hard at that
That and working on the command line and using BASH -- it looks more esoteric, more opaque to non-programmers, and establishes you as an "expert." LOL
4:43 "Almost all the languages that you C... are actually implemented in C" I C what U did there friend.
Ha! I found you're pun! + I C what he did there now, heh, I like making puns.,
Perl ~The only language that looks the same before and after RSA encryption.
VirtualCoder Unless the programmers are really, really good at following coding standards. Ahem.
Perl is a "Write Only" language. :)
I lol'd. One dev's perl script is another dev's nightmare.
Spoken by someone who never encountered APL
dwede1man apl is nice if you put small ruby letter like Furigana in Japanese manga over the operators so that you can read what the operators are. There are nice emacs atom vim plugins that replace characters with all symbols.
"managers like it because it looks like you got a lot done" CLASSIC
The best programming language is the one you have fun with and enjoy using the most in my case it's python. everyone has their own opinion.
Python is a scripting language, not a programming language.
Gillian Cohen "Scripting language" and "programming language" aren't mutually exclusive concepts, you know. Python is a programming language.
storerestore
Python is a scripting language similar to Perl and Ruby. I could also argue that Perl is a programming language, but we don't call them such.
Define "we". If you meant to say "I", I can tell you straight away that I'm not particularly interested in your personal opinion on such a well-defined matter. If what you say is true, I am sure that you can find a reputable source that validates your sentiment.
storerestore
By we, I mean us Python scripters.
Exactly true, what he said still stands 10 years later. There’s only the addition that TypeScript is here to stay to simplify JavaScript, and obviously Python has completely replaced every other scripting language and taken over the scientific community.
All the reasons he gave are very well founded as well. A very insightful video.
I would just say that TypeScript definitely does not simplify anything - it does the opposite - but otherwise I agree completely.
"You can eat a 1 pound steak or you can eat a 100 pounds of shoe leather and you feel a greater sense of accomplishment after the shoe leather" XD
Shoe leather analogy was A+.
I started learning C a few weeks ago. I've worked with a few other languages over the past ten years or so (PHP, ActionScript, Javascript, etc.), and I am very impressed with how C works by comparison. I've never been a fan of the looser languages, and it's also nice to see how close you can get to machine level with C (if you want), but still pull off fast and powerful actions with basic code.
Still a rookie, though, so I have a long way to go.
this guy is still in the 80s !!!
That shirt looks more 70s to me.
+Hotboytrue its called batik. traditional button down shirt in Indonesia and Malaysia.
He remembers me the protagonist of the film Her.
lol yeah and you will never accomplish as much in your lifetime as he did in 10 years
say's a guy behind a keyboard ...
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
+TheProfiler wow, thanks for that summary!
Best comment, :D hail heskell
Thanks, but what's "inline abstractions"?
Jerome Potts INLINE LINK PROGRAM LINE NUMBER ,TO A PROCEDURE ORIENTATION, NOT DECLARATIVE OR STRUCTURAL ORIENTATION LIKE OBJECTS BASED LANGUAGES WHICH LINKS DATA ARRAYS ,A MORE EFFICIENT REUSE OF RESOURCES
C doesn't have classes, but ok
So great to see and hear Larry speak.
He is a great mind, and he is really spending some time in thinking about the languages. Perl (which he is the author of) is a great contribution to the software world. He deserves respect.
The best programming language will always be the one you spent most time with.
underrated comment
@@arpittaneja but not actually true
English??😂
I was born 10 years after you wrote your first program :) I have been working in Java for the last 14 years, and I'm about to retire... Java had ups and downs, but It was always good to me. I was never part of a team that didn't deliver, and I'm also grateful for that. Last company I worked for: NOVELL. One bit I might have forgotten to say is that I never finished college. Hackers by heart would learn to work with what they have instead of complaining :) enjoy yourself a little while at work.
Whatever your 5 are they should include:
1) one compiled, imperative, object-oriented language (Java, C++, C#, etc.)
2) one functional language (Scala, Erlang, Haskell, oCaml)
3) one imperative, scripting language (Ruby, Python)
Depending on what your focus is (mobile dev, front-end dev, backend dev) the depth to which you want to know one of these types of languages compared to the other types will vary.
mnm. N/9nn.lnn. ....
. M. Linč. N. .M 66zbj;m/
⏳🍺🍧🍦🍩🍨🍨🍦🍴🍨🍴🍧🍦🍺😤
.
. . . 😷😵
I would throw in assembly and/or C as it gets one close to the hardware.
Pedro Lopez Assembly is not a language in that sense (or yes it is, tzillions of languages, one for every iron you try to program)
Efficiency differences between C and hand-tuned assembly are minimal nowdays. C compilers are so effective.
muhahahabad I know optimizing compilers are really good these days but assembly IS a programming language, to be pedantic it is Turing complete. But assembly is very good at teaching someone how computers really work and a stepping stone to C. C is important due to it being so lightweight and therefore very important for mobis and embedded systems. C also develops an appreciation for type safe and garbage collected languages.
Pedro Lopez
Do you know how your TV works? Or your CAR? In every single detail? Do you know aeroplanes etc?
If you answered 'no' to any single question above, does it hinder you to enjoy using those products in your everyday life? Do you need to be an aeronautical engineer PhD before you can buy a flight ticket and fly from London to NY?
Pedro. You are simply lost. Assembly or C (or C#/Java, neither C++ or whatever) is never needed to be productive with higher abstraction programming language like Smalltalk, Ruby or Python.
Why would a Python programmer care if CPU down below uses registers, stacks or whatever? Or how memory is allocated, pointers used etc. That's useless garbage to know if you are a higher level programmer.
He forgot about punch cards. The only language anyone should learn in 2014 are punch cards.
Make that binary.
My programming teacher talked to us about how he had to learn on punch cards in the military as his first language
@@SuperNuketown2025 That's as close to the metal as it gets. My grandfather worked for the military in the late 50's / early 60's and told me about the times when he, at the end of each month, had to deliver suitcases filled with punch cards for archiving/testing reasons. Wish I could travel back in time and visit those facilities.
People tend to forget that you can write object-oriented systems in C: the syntax doesn't explicitly help like it does with C++ you but sometimes implementing the concepts yourself gives you extra flexibility.
void pointers let you do anything
C: Simple and awesome. Gives you everything you need to program a computer.
JavaScript: Incredibly misunderstood language. 90% carbon, 10% diamond. Surpasses many languages just with the diamond part.
Julia: This should be the C of dynamic languages, seriously! This is Python done right.
Haskell: Fun.
sh: It's the shell, helps to know.
You're so right about JavaScript and Julia! I wish we could learn Julia instead of Python at my uni.
Im new to this but i dont know why i hate python . or i just hate the things that everyone learns maybe
I m using c rn . planning to continue with ruby (just coz i love its name )
Just LEARN C, the mother, the father, the GOD of all modern languages.
Later upgrade to C++, when you learn C++, JAVA and C# is 2EZ2LEARN
JS, Phyton, Ruby, PHP are the most popular scripts.
Or just learn ASEMBLY or direct BINARY programing, but only if you are a Alien.
Marcelino Sandroni hahahahah
Marcelino Sandroni
I programmed in assembly language, that is the real deal.
5 languages everyone should know **ABOUT**:
JavaScript, Python, Java, C, C++
My favorite 5:
Java, Python, C++, GolfScript, Groovy
5 languages nobody should use (anymore):
PHP, COBOL, VB, VBScript, Objective-C
What's wrong with PHP? I get that is lagging behind a bit but I prefer it to python (although python is a *joy* to use, PHP seems more suited to websites) for server-side scripting (Websites only). And Objective-C: What else are people supposed to make iOS apps in? I agree with the other ones though(I'm only 13).
mikedfdf Jobs PHP is very popular, but that doesn't mean it's good. Here's an article about what's wrong with it: me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/ . Some of the points are being disputed, but even if you only accept 10% of them, I think it should be enough to kill it with fire.
Regarding Objective-C, I'm quite biased against Apple, but ignoring that, I think Apple should ditch that language and switch to something more decent, then app developers can switch too.
well if you wanna build programs that run on os x you HAVE to use obj-C. What should people use instead of php?
Tecnovlog 1) Currently that's true (except perhaps some frameworks that generate obj-C code). 2) I use java myself, but for people who find it obnoxious or hard, I recommend python.
Tecnovlog What to use instead of PHP? A carrier pigeon with a pack of Post-its, a pencil and moderately acceptable penmanship.
Functional Abstractions Meaning how functions are expressed in a PREDICATELESS WAY without reference any Order of PREDICATES
Meaning Syntax or PREDICATEs being ORDERED
like in FIRST ORDER PREDICATE LOGIC
RECURRING RELATION
Java
Python
C/C++
JavaScript
PHP
PHP is cancer.
Native php is dead - writing a web app in it requires skill, an in depth knowledge of input sanitization, security and way too much time. Although at least it has decent cross platform support unlike the language its based off (C) and its mess of platform specific libraries. Looking at you Windows and your maze of int return type def re-naming.
php Frameworks like Laravel are still very popular because development using them is fast, easy, force you not to mix views & controllers and all the security and sanitation more or less is done for you.
fun fact officially php is written in all lower case.
What's replacing php?
Perl , node.Js , python , Ruby
I am studying my aim is to work in IT companies what are the coding I had to learn to work in IT companies
I hate it when people say..C is good for nothing....I am electronics and computer engineering student....I am fluent in 6 languages including C and my friend C is my life. C still rules the embedded world. Don't underestimate C. When you go to an IT college or a engineering college...or study computer science...the first language they will teach you is C. Its is really important to learn C not only because other languages are based on C also because C shows you a basic pictures of how the lower levels of a system works...!! If you can't code C...you are probably going to be a shity programmer.
I'm a computer science student and the first language we were properly exposed to here was Haskell (second was Java). C has been touched on in other courses, but not to a great extent. I'd say I was a shitty programmer, but more because of a lack of experience in general than a lack of knowledge of C. You can be a good programmer without being able to code C, just as you can be good at speaking English without being able to speak Latin (or having a knowledge of linguistics).
You ve got a point here !!
MisterM2402
C does tend to introduce lower level stuff that most languages don't. In turn that helps a lot imo since you are forced to learn how things actually work. Especially in embedded programming. Not to mention the cool stuff you get with UNIX(-like) systems.
Thank you in my area once upon a time everyone was going nutso over VB, but I trusted my gut and stuck with C, C+,C++ etc...Then one day the demand for VB disappeared. Everybody wanted C and its' successors, I love it when I'm vindicated.
Well, Notch used Java to make Minecraft...
He got 101 MILLION DOLLARS 2012!!!
A shitty programmer... ...Heh...
In short:
- JavaScript
- Java (Love it or hate it)
- Haskell
- C
- Perl (Or Python/Ruby)
I recommend learning Piet. It is not useful but is the most beautiful language and also shows you what programming can be.
My top 5
- JavaScript w/ Node.JS (for any project that needs asynchronous tasks)
- C++ (for heavy computations)
- Haskell
- Julia (for science stuff)
- Ruby (for begginers)
There's no question that C and Pearl are great powerful language. It's just some of their syntax are cryptic and counter intuitive but somehow we got used to them last a few decades. I personally find that interesting and amusing. It's something Ken Thompson wanted to use for himself (the language B) and somehow became a standard for everyone because of UNIX, IMHO.
Python or perl ? I think it's python for sure.
+Eric Wang Definitely python. It's more modern, easier than perl, and and looks much easier.
+Eric Wang Perl is gaining popularity back again tho.
+TheMRJewfro Perl has so much more freedom
With Perl, you can do so much in just a couple lines. But, python is easier to read...
The reason why he favored Perl is.. HE created it!
Missed the most important of all, assembly, it is the only language that can do anything that can be done. There is nothing faster and speed is important. It can interface with anything. And let's not forget, without assembler there wouldn't be any of these others. ;)
Assembly would be worthless without machine language.
The lambda calculus, on the other hand, is universal. It can be used to compose programs that optimize programs, to proof the correctness of algorithms, and to compile them into machine language. Or assembly. Or C.
The only drawback is that it has to be implemented in order to run. But once you got that, it really easy to write a compiler for your own language in it! (Oh, wait… Error code 22…)
Yeah but if all programmers had to be math nerds we would be at a serious shortage of programmers. Much better to have languages that represent logic rather than math.
Amse Master
Logic is a strict subset of mathematics.
Programs are actually proofs of functions.
Idk. I see the same debate here as everywhere else, functional vs imperative. I definitely see the efficacy in functional programming. But, I have mind more oriented towards language than math, so I go the other way. Learning C more intimately, looking to work towards assembly from there. Happy hunting ya'll.
TropicalPriest
Assembly and C are not any more like natural languages than functional languages are. (I'd say they are even less so.) The closest programming paradigm to natural language is probably object oriented programming, in particular Inform.
My take, in no particular order
- Java
- JavaScript
- VBA (if you work in a typical office environment and use Excel a lot)
- C (learn how to program properly with a strong typed language)
- Assembler (to really understand computers)
Alot of people seem to have the view on programming languages as they have to choosing a partner in life, "choose one and live with it" kind of attitude. I never thought like that at all, you learn the language you need for the moment, or for the problem you want to solve.
There is ofcourse a slow learning curve if it is your first language, but when you start to understand programming and how computers work, and you have that feeling of confidence you can pick up a book or a tutorial and take on any language you want.
I would say, learn C. Because it has so many compilers for so many architectures, if you want to get into microcomputers. There is a C compiler for almost every architecture. Also if you want to take on something else later, alot of languages (scripting languages also) looks like C.
If you're still not interested in C, or any kind of low level programming. You can do so much with just JavaScript, and you can do it now without downloading large compiler tools or IDE.
I like this guys mannorisms..
I like the way he behaves in his little castle too
well played
Personally I MUCH prefer Womenerdisms ;]
The best Programming languages you need to know:
1-Java (Develop softwares,Android Apps,Games,.....)
2-JavaScript (Web develop and Web design)
3-Python (for Sciences,Hacking,...)
4-SQL (Data base,Dynamic Web design)
5-PHP (Dynamic Web design)
and if you want to add annother c language to this list i would say C++ because c# is very similar to java and knowing c++ helps you work with c.
That is all you need to know as programming languages.
Matthew H -- NSA and CIA use it a lot. For hacking.
i agree re:PHP. it hasn't been just for the web since 1999 when it got STDIO
+phil taylor You do realize HTML5 and CSS3 are markup languages, and jQuery is just a library for Javascript?
Ha, I am here after 7 years from the Future...
Lisp, the language that is what you want it to be
Lisp and JavaScript, Python are very similar as well.
Even though they are old, Common Lisp and Scheme have some mind blowing power. Programs that may self modify and change syntax at runtime. Heterogeneous collections. Code is data to be stored and manipulated. Macros that can build functions during runtime while letting you put code inside. All stemming from a single unified concept of the lambda function and CONS cells. Not taking huge concepts and trying to jam them together then provide safety measures. If you like recursion try Scheme, if you like iteration go with Common Lisp. I find Clojure too much of a departure from the previous two but your mileage may vary.
Not Cobalt; COBOL. Acronym for Common Business Oriented Language.
James Smith lol
+James Smith He said COBOL dude.
+FLVT0 Sorry. I read the text in the description.
+James Smith He DID say COBOL. Larry Wall has studied linguistics and created an entire programming language with the intention of making it more like a natural language, so no, he doesn't exactly come off as the type to mispronounce the name of a well known programming language.
+Thor Christopher Arisland Am I the only one who read the text transcription of his talk? The transcriptionist goofed and it is there for those who care to look.
I was a Java programmer once. Got sick of the size of those fucking stack traces to be honest.
"Java is the Cobol of the 21st century" -> I love this guy !! ;) :)
The languages were:
Javascript (for the Internet)
Java (for high-level jobs that get outsourced)
Haskell (for geniuses)
C (for low-level jobs)
Perl (because he invented it and therefore prefers it over Python and Ruby)
Agreed, in my first year we're starting Python but many of us previously had experience in Pascal and Visual Basics.
Python, C++, Javascript, SQL and Julia are the 5 that I know. I spent some time using Java for Lambda in AWS as well. I suppose HTML, WAS and PHP should be in there too. Honestly, it really depends on the job. Mobile game development and VR? C# with Unity. Desktop/laptop gaming? C++. Android app development? Java with Android SDk and XML. Numerical computation? Julia. Web? Javascript/CSS/ HTML5, PHP, SQL, Ruby on Rails. Scripting and other things? Python. Honestly, just start with Python and go from there. Use Python to get a grasp on basics of programming and then decide what you actually want to do and then focus on a lang suited for THAT specific task or project
I didn't expect to laugh out loud while watching a video about programming languages, but Larry Wall made me do just that.
It's interesting that he picks Javascript as a first choice, and mostly brings up Java due to the large amount of legacy code which is written in the language (at least that's my interpretation of the quite amusing "COBOL of the 21st century" remark). I think it's especially interesting since, back in 2011, the whole nodeJS/npm ecosystem was still nascent and Javascript was still very much a browser language. Turns out that he was largely right. Pretty good vision there.
JS has a nice syntax and features optional semicolons and easy objects, so with transpiling you could use it for anything.
Right now, I'm focusing on JavaScript for projects, but I'm learning C/C++, Python, and Java. I find C++/Python helps me approach programming from an algorithmic standpoint, and, Java forces me to think more architecturally (like how am I going to structure this, so it's not a behemoth of code?)
My next languages I want to learn are Lua and lisp/clojure.
My List:
- Python (Covers the base for scripting languages, helps to understand Javascript/perl etc)
- Java (A good OOP language that everyone asks for)
- C (A solid understanding in medium level prodcedural languages help a lot, like learning latin really)
- x86 or ARM Assembly ( A knowledge of assembly is fundemental to knowing how a computer actually works. x86/64 and ARM are pretty unanimous).
- a Lisp Dialect (This helps cover the confusing base of functional languages)
I still love C and assembly language. May be more primitive but thousands of times faster than any language that uses a runtime module.
Here is my experience from working in the IT department of a very large and very well known company:
Java - As Larry said, this will be your manager's preferred language (aka YOUR preferred language) because it's sort of a de facto industry standard. We're currently switching all our Ruby stuff to Java as part of a large, expensive, and long lived project mostly for political reasons rather than for the performance benefits. This should be your strongest language.
Some scripting language (Ruby, Python, Perl, JavaScript...) - just pick one to learn well. Chances are your job will use a different one just because there are so many out there but they're easy to pick up and pretty similar in their function and capability. Know at least one VERY well.
C++ - Most applications won't use C or C++ but knowing how to leverage the capabilities of getting down close to the metal is something that can be very helpful for certain problems. Also like Larry said, most higher level languages are actually implemented in C or C++. These are "genesis" for modern programming. I'd would say be proficient enough that you could whip up a quick dirty implementation for a given problem with minimal outside help on short notice.
COBOL - Yes, businesses still run COBOL. The very heart of our operation runs COBOL code some of which dates back to the 70's. We've spent billions, with a "B", to keep it going throughout the years because it was poorly documented and slowly turned into a pile of spaghetti no one wants to touch. We're now spending additional billions, again with a "B", to completely replace it. Be able to read it and maybe make minor updates.
Lastly, some functional language (Lisp, Scheme, Haskell, F I think) - You will never use this outside of one class in college. Learning these does teach you a new way to think about programming which is massively helpful in understanding the theory behind programming languages and computation however the only time you will actually use this is in a metaphorical dick measuring contest with someone who claims to be proficient in 20 languages.
Have you tried using JRuby? It's faster than the standard implementation.
Larry Wall, so hot right now.
***** omg where is hansel, so hot right now.
+ViLeDeth
His name is Haskell these days
😂
let me guess codebabes is probably male gay programmer
If you were on fire and I had a cup of my own piss, I’d drink it.
First year of my CS degree and only on JAVA, got a long way to go, hope other languages come easier after learning one.
I am endeared to Larry Wall as a person and his creative outlook on programming; I was never a Perl programmer but I've known a few and sounds seems like Perl had a fun, colourful and busy community at it's peak; would be nice if languages today had quite that flavour of community. However I feel it's era is past (may be wrong!), but I couldn't imagine anyone learning Perl ahead of Python, Ruby, Java, etc. except on an old school Uni course.
1.C/C++/C#, 2.Java/Objective-C, 3.PHP/Javascript, 4.Python/Ruby/Perl, 5.Haskell/Lisp/Prolog
I'm learning programming in college.
It's C++.
This is my first language.
KILL ME.
JLock17 RIP
JLock17 Alternative to dying: find a language that isn't overcomplicated and poorly designed. I would recommend Python, because it's relatively easy to read and understand, and you can write simple programs with very little syntactic overhead.
JLock probably doesn't have a choice right now.
just drill yourself about Types and Pointers. these are the things that make C++ hard and useful. get comfortable with making classes and using them, that's important for many languages. hang in there, cuz once you got a good grasp of C++ or C you can start understanding the whole shebang pretty well.
Pointers are not that hard. Reference and pointers are two concepts that if explained correctly from the start it all makes sense. Once you understand them you can understand how things work for almost every other language. Every Programmer worth their salt has to learn about memory management imo.
It's interesting how you dress in the style of the decade during which you were most successful.
kemchobhenchod aint that a batik shirt from Indonesian or Malaysian country?
Sex tourism rules, man.
I laughed, but that was rude
I put Perl at the top of the list simply because it has the best documentation for people who want to learn the basics of programming. There are thousands of excellent books explaining Perl. Once you know one language, learning other languages is much easier.
At a low level of if you have tight constraints I've found that there's nothing to beat the combination of C and assembler. 'Back in the days' Borland's Turbo C was great. It allowed you to see the assembler that the C code produced so you could use C to write assembler. Developer productivity wasn't as high as it was for modern day languages but the user's productivity was many times more - and that counts.
PC: C#
Mac: Objective-C
Linux: Anything because Linux is awesome
My Top 5:
Ruby, Python, PHP, Perl, C
It does not make sense at all to program for different platforms using different languages. What a waste of time.
And I waited for him to say "C++" .. but he didn't. :'(
Because he's stupid. That's why.
I know they're very similar but is it better to learn C++ or just C?
Both. If you've never programmed, most would probably say to learn C++ first.
They're kind of similar. I wouldn't go so far as to say they are very similar. C++ Is a bit easier than C although it's still quite a tough first language to learn, but if you learn C++ first, you essentially learn an extremely useful and powerful language while getting all the scary bits out of the way so when you move onto say, JavaScript, you'll already know how to implement certain ideas in your code.
They are *not similar at all*. C is minimalist and can be hand-translated to assembly if you so wish. On the other hand, C++ adds polymorphism, virtualisation, templates, runtime object information, and all kinds of other stuff, but in doing so, slightly worsens performance (features can be disabled at compile time though), and gives inexperienced devs even more rope to hang themselves with.
Shien The Kid I absolutely wouldn't say they're not similar at all, and definitely not in bold. C++ is almost a superset of C. C++'s creator said "incompatibilities between C and C++ should be reduced as much as possible in order to maximize inter-operability between the two languages". Of course, C++ has all the things you listed tacked on as well. But you can't say a square and rectangle aren't similar at all.
Learn C first (but learn it completely). It's much easier than C++, and you'll also grasp some basic programming knowledge before you jump into objective oriented programming.
Beautiful speech Larry Wall, thumbs up for you.
Great interview and thanks a lot Larry for Perl. Perl and its community rule!
I basically just bought books based on what this guy was talking about.
1)Java
2)Python
3)PHP/pearl
4)C++
5)C
Pearl... Jam?
Your post is invalidated by Pearl
get rid of python and you're right
The worst part of being a developer is talking to other douche bag developers who think they know it all.
Me: the sky is blue.
Them: Well that's stupid to say that because that's not the most efficient way to go about doing that. The sky is actually black, but when white light shines through a prism, the light is separated into all its colors. A prism is a specially shaped crystal. If you visited The Land of the Magic Windows, you learned that the light you see is just one tiny bit of all the kinds of light energy beaming around the universe--and around you! Like energy passing through the ocean, light energy travels in waves, too. Some light travels in short, "choppy" waves. Other light travels in long, lazy waves. Blue light waves are shorter than red light waves."
Bro stfu I don't need this write now. lol
+Jay Bartgis sounds like people try to stop you from making problems for scaling and you think they're just talking shit cause they think they're great. they're probably trying to help you not destroy the company ^_^;
You sound like a bad programmer.
Yea, just go on stackoverflow. Not a very welcoming community.
Mark Paul Cards i needed this lol
The sky is transparent at night.
HTML, CSS, JavaScript, PHP, SQL (in this order). With the these languages, any business idea you have, you can build a Wordpress. These are good languages for a resume if you're looking for an office job also.
Put simply, Object Orientation is "thinking in objects". if a language can give you that, then it is object oriented, there is no hidden message to the words "Object Orientation". If you can model real world entities and their relationships perfectly, then it is Object Oriented.
Assembly master race
C++ , Delphi/ pascal, php , python, ARM based assembly
Love Delphi but Embarcadero made it too impractical to use cost-wise....
@Frank www.lazarus-ide.org/
On the transcript : Cobol, not Cobalt.
So you can add new stuff & have it hook into existing software.
A lot of things allow you to call methods on objects over a network. But almost none of them implement returning an arbitrary polymorphic type, because it means the caller has to be able to download the implementation of new types, which contain new executable code. Java is the only commonly used platform that allows doing this safely. JINI brings it all together into a robust system.
1. C (ANSI) - essential to many things, least of all low level OS programming
2. Java or C# - a JIT-compiled garbage collected OO language for large scale commercial development
3. Haskell or F# - statically typed functional programming language to meet two crucial demands of modern day computing: data manipulation and parallel programming
4. Javascript - indispensable tool for the client side, when everything is going into cloud
5. C++ (and/or Objective C) - native OO useful for many things
What? No mention of Forth?
yeah right :(
Big shock, Perl is one of them. I've managed to go 25+ years WITHOUT knowing it. Thank you for making Perl incomprehensible, Larry. :)
same, agreed !
Is this video Old or Larry is Still in the 80's ?
c++,java,c#,python/ruby,js
I'm a game programmer , each Programming language has it's own advantage and disadvantage .. for me C++ is Great choice for game programming .. i can't tell you what to learn .. ask your self what do you want ?
One should start with a language that makes you understand the processes and with which you comprehend how to make algorithms and functions.
In my school we started with Delphi(Pascal).
I would say that if you learn javascript, python, php, and Java or C# you will have all basis covered. It is a bit deeper than that since learning those languages mean you will be learning their respective development environments (MERN Stack, Django, Laravel and mySQL, SPRING and .NET)...you will be learning more than just 5 languages...but as a start those 5 (or 6) will make you well rounded
wow this guy came out of the 70's :)
"wow this guy came out of the 70's"
Apparently he still hasn't.
And those 100 lines of Java still likely perform better than half as many in Perl, Larry.
setting the bar pretty low there lol
I find Haskell to be like a video game. You don't have to be smart, just logical.
Just ignore the really advanced stuff like CoMonads, Profunctors, Arrows, although learn about how to use Lenses. At first use the IO Monad and maybe the State Monad (which is almost the same as the IO Monad hahah). Don't try to write your own Monads or MonadTransformers. Recursion is easier to understand than Folds unless you are using a function (Monoid) that is associative. Use the applicative functors (generic map) and to work with collections and monads. Have your IDE, or use Holes (Haskell holes) and hoogle autocomplete hard things for you. Use trace, unsafePerformIO, and splitting big functions into lots of little functions for debugging.
Honestly, as a beginner who started this week, list comprehension is so nifty and very minimal. Looking forward to learning more... in the coming weeks.
I'm a fan of the R (formerly S+) system for statistics and graphics. It's much like many procedural programming languages, but is much better suited for exploratory data analysis. Even its displays are treated as objects, and it has nifty features such as named function arguments with default values.
I would say the five programming languages everyone should know about even if they don't want to know programming are: C, Java, Python, Go, and probably Javascript.
I think html and css are pretty important cause many languages are based off of them
+omar younes Those aren't programming languages, they are markup languages.
They are handy to know though.
hal ***** I had those two pretty confused. thanks for that
I don't know why I hate Java. I just do. Can someone give their input on the language?
Java the language is a high verbose and imperative language, and is not so strong object oriented (primitives int vs Integer). But we need to disjoin the language from the platform. And that is the key for the success of Java, the platform is very well founded and the JVM, libraries and frameworks are the ones that make Java the top used platform. The best thing Sun engineers made, was the separation between language and JVM, today we have lots of languages running on the JVM all competing to take the Java language throne, or to complement, and all the languages have some level of interoperability. I think the most promise is Scala, because is a language that is bringing a interesting ecosystem (frameworks) and is a mind paradigm shift for the developer but with a graduation step by step from imperative to functional
it will be at first, but once you somewhat master core java ,every other language will look easy enough,that you can learn in couple of weeks..
Paul V Barbar Try learn scala or haskell for the perspective of java in a couple of weeks... In haskell you will need to forget everything you know and start over, in scala you can take some things but they are just 1% you can't master it from this perspective.
Giovanni Silva
Dude,whatever you do,stick with one language for some time.,try to do all kind of stuff. Go deeper in one language..So starts with core heavy language that evolved in time..Its a painful and lengthy process,but its the way..
if a guy,say he know some c , little python,some okay javascript. He is not any better than a guy who knows expert java(or any language of your choice).
Paul V Barbar I agree. It takes time to learn a language and more time to fully work with it and everyone should know deeper at least one language. Let me reformulate my point: I know once you learn Java the syntax is similar to a huge number of object oriented languages. That is because Java is inspired in C and other languages inspire in both for it popularity. But someone that master the Java language with decades of experience, can't say that will learn every other language, in fact they could take more time to learn complete different paradigms because this person will try to make things from the perspective of the Java language, that is more natural for him.
A language is like a tool for get the job done, if someone know only one, lets say this person have only a hammer and the problem requires a parafuse, this person could get the job done with some blood of they eyes and fingers :-) instead of a elegant parafuse solution. I agree that know superficially a huge number of languages is not the way to go. This simile is a rough simplification cause languages are more than tools, they are a expression of think. But know different languages deeper enough (not need to be a expert) let the programmer to think beyond the limitations of one language, and let the programmer to think in more wise solutions, even for its main used language.
I believe know multiple languages, specially multiple paradigms like functional, imperative, logic and object oriented, can make a better programmer and should be part of the continuous evolution of everyone
I love Java but "Cobol of the 21st century cracked me up"! Hahahahaha! "It looks like you're getting a lot done" is funny too....
As a mathematician, I think Haskell is absolute beauty. I work in C/C++ (and commonly name C as my favorite) but if I could find a Haskell job, I would take it in a hurry.
If you can program in C, you can pick up the other languages. Learning how to use pointers and debug programs with pointers is an invaluable skill. I learned C in college. Lots of students had trouble getting programs to run using pointers.
Lots of students had trouble with the whole idea of recursion.
I think if you have experience debugging programs using pointers and recursion, you can pick up any programming language.
Truth is, I only clicked on this because of the shirt.
That's a batik shirt
Java, Python and C++ : You should learn
Replace Java with C and you're right.
Replace Python with C and you're right.
Replace all with C and you're right.
I didn’t know you could make a GUI with Python. I thought it was just a scripting language.
Josh Blagden You can do whatever u want m8
Just not mentioning C++ discards this whole video.
Eduard Karesli Java was originally an attempt to learn from C++'s mistakes and do a better job of providing object orientation, with networking in mind from the outset. So if you learn Java as Larry suggested, learning C++ would be pretty much redundant. It might help you get a job in a C++ shop, though.
Eduard Karesli not mentioning C++ is what convinced me that Larry still has the full use of his faculties. C++ is a steaming pile.
Eduard Karesli I have to agree. The FIRST language any so-called programmer should know is C++ (C++ 11
Doug Gwyn Well, with C++, you'll have to actually understand how to manage memory, what a pointer is, how computers actually work in a sense.
hubomba I am not saying you are wrong, just want to say that from the start. However I would say that pointers are more of an abstraction of assembly rather than machine language.
even though you have to do some memory management, it isn't the same as what computers do.
C++ or rather the OS does most of the heavy lifting for you. you also don't have to care about registers or memory allocation or anything like that.
Lisp will always be on this list, I think. It's probably the most beautiful, simple, and versatile programming language family ever conceived, and it has been for a very, very long time. And as much as many people say otherwise, Lisp is still very relevant. I use it all the time at work, from tinkering with my emacs config in elisp to writing webstuff in Clojure.
Even so, Haskell is best language.
My List:
1) C/C++ for low level stuff.
2) Python for data science, AI, and machine learning. A good beginner language.
3) Javascript because knowing at least a little is necessary for web development.
4) Clojure for full stack web development and because it's one of the most approachable functional languages for beginners. I'm also excited at the future possibilities for Clojure in the fields of data science and machine learning.
5) Java because my university made me use it for a bunch of projects.
Larry Wall looks like Steve Jobs with a mustache
GlyGlue ...Or Weird Al Yankovic's straight-haired brother.
Description: "Cobalt" Ahaha lol, its COBOL
Java
Python
C++ (especially 11 if you haven't tried it it;s great)
javascript - (Don't like it but you have to learn it.)
scala - (functional and object oriented)
Here is more top five:
1) R,
2) R,
3) R,
4) R,
5) R,
Don't say that the only thing that R is good for is statistics. You can write loops in R, accept standard input and output, and write scripts in R. Oh, and you can even make webpages with Rshiny.
R you serious??
I see what you did there. Touche!