7 ms·
How to Pick a Programming Language (2002)
- yura 3y agohttps://web.archive.org/web/20231002034316/https://www.tundraware.com/Technology/How-To-Pick-A-Programming-Language/ https://web.archive.org/web/20231002034316/https://www.tundr...
- scubbo 3y ago> "I've heard that AI is the way to do things, so I want the best AI language." In 2002. Jeez.
- stodor89 3y agoSome people are born ahead of the curve.
- bigfishrunning 3y agoOr they read a bunch of Minsky papers in 2002, as was the style of the time (at least at the college i went to...)
- qiqitori 3y ago(OT, 2006) https://thedailywtf.com/articles/No,_We_Need_a_Neural_Network https://thedailywtf.com/articles/No,_We_Need_a_Neural_Networ...
- AnimalMuppet 3y agoThis isn't the first AI hype cycle. In the 1980s, Japan's "Fifth Generation Project" was going to create AI software, and thereby ensure Japanese dominance of computing for the foreseeable future. That was, IIRC, Prolog-based (or at least in that style). That... didn't work out. Before that, there was the AI hype of the 1960s. That was Lisp-based. That failed into the AI winter. So, yeah. The dream of AI has been around long before 2002. Of course, the definition of "AI language" when the article was written probably does not match the current one... (Or were you complaining that 2002 was too late for "I've heard that AI is the way to do things"?)
- WCSTombs 3y ago> 6) P = "I want to make lots of money." > > Quit programming. Become a rock star, actor, or corrupt politician. The odds of getting rich in these fields, however slight, are probably better than in programming. Well, this one is pretty debatable at best.
- raincole 3y agoThe article was written right after dotcom bubble busted, I suppose.
- lunarimiso 3y agoI guess it depends what you would define as rich. If you do not come up with some new hot thing and only count your pay. Then the article is quite right. People really rarely get rich from wage.
- angra_mainyu 3y agoI do have to disagree, with remote work it's very possible to be employed, earn a very high salary and simultaneously live in a low CoL area. Now, I'm not saying you'll be a millionaire, but definitely have somewhere in the ballpark of 100k in the bank after 2-3 years.
- JackMorgan 3y agoI know quite a few developers who are in fact multi-millionaires just from doing exactly that for 10+ years. If you're netting 150k and living on 50k, that's a million in ten years not even counting growth in the market.
- pjmlp 3y agoIt is also quite easy to lose the job to offshoring countries.
- WaffleIronMaker 3y agoYeah, what would you define as "lots of money"? Here in the midwest, I'd say that >$50k/year would be making more than my entire family combined, so it seems like all software developers do make lots of money to me.
- bigEnotation 3y agoWhat’s a profiler and how do I start using one? If they’re language specific, then for typescript, Ruby, and Kotlin.
- spion 3y agoFor TypeScript (browser, chrome), it should be in the devtools under the Performance tab, (backend) is node --prof and --prof-process
- gleenn 3y agoruby-prof for Ruby and VisualVM or the profiler built into IntelliJ are all pretty good.
- recursivecaveat 3y agoTo answer your first question: its software to monitor the execution of a program and produce a mapping from resource usage (usually time-spent) to the source code. This is useful to find the most expensive portions of your application so you can concentrate improvements on them. How exactly to use one would be language-specific, but the general flow is just to loop profiling and addressing problematic code until you're happy with the results. Just gut-checking which exact parts of a program are slow is really hard without prior profiling or very detailed logging (which is a kind of profiling), so they're very important to guide efforts.
- dgan 3y agoTangential question: how come "modern" languages (like Go, first release 2009) seem to ignore basic PL Theory, that you learn in the first chapters of any suitable book (see Pierce, "Types and Programming Languges", 2002) ? I am specifically talking about how the seem to have forgotten (omitted?) parametric polymorphism, the absence of sum types, presence of "nil", lack of type inference?
- vsnf 3y agoFor the most part, they don't. This is a Go specific problem, which was created with a very explicit anti-intellectualist stance and threw out 40 years of PL theory and practical research.
- calini 3y agoYet somehow it's one of the most productive and successful languages to have appeared in the last 20 years.
- Capricorn2481 3y agoThat sounds anecdotal. There's not really evidence of it being more productive than anything else
- codr7 3y agoI don't find it weird at all that simpler languages are more popular/successful. They're easier to pick up and support the idea of plug and play programmers that is very popular among managers. Productive as a consequence of the above, maybe; in that more code is written in Go; but certainly not as a quality of the language. And there's numbness and denial involved. I've been writing Go full time for about a year now at work. Every time I use another language I'm reminded of how much time and energy I'm wasting.
- mbernstein 3y agoIt's not even that it's popular among managers to move people around all the time. That's an awful framework for getting great work done. People change jobs and you need to choose a language you can either easily hire for or train someone up in. Go fits the second requirement very well, and as more people learn it, starts hitting on the first. I introduced Go at two different companies to great success not because it's my favorite language (I would much prefer Rust, Haskell, Clojure, etc) but in reality, in my role as a leader of a tech org, hiring smart people and getting giving them the means to be productive as soon as possible for however long they want to work with us is key.
- harimau777 3y agoThis is tangental, but programming clicked for me once JavaScript introduced me to functional/declarative programming features such as replacing loops with higher order functions (e.g. map) and avoiding mutation. However, I'm now at a point in my career where I want to get out of the rat race of web development. Are there any programming languages or domains that are "functional/declarative oriented" but actually have jobs? (Note that I don't necessarily mean that I'm dead set on only purely functional programming languages. I would love to get a job working with those, but all I really need is something like that's functional/declarative enough for it to make sense to me.)
- rockwotj 3y agoScala is something thats used a lot in data/stream processing and is similar to JS in the functional aspect (more so because there is sum types and pattern matching which is the next awesome thing in functional programming)
- gdprrrr 3y agoI think Rust may be a good fit, as it encourages a declarative style with things like immutability by default.
- nyssos 3y ago> Are there any programming languages or domains that are "functional/declarative oriented" but actually have jobs? Scala probably has the most, but there's also a lot of people who insist on pretending its Java, so it's hard to say how many of those are really functional codebases.
- philipwhiuk 3y agoI think I disagree with: > Based on this information, you should select one procedural language, one object language, one scripting language, and, possibly, one assembly language which will comprise your core skill set. but only because realistically you should discard 'assembly language' and swap it for 'browser-supported language' these days. Learning assembly language is basically useless at this point.
- cmiller1 3y agoUnless you want to get into compiler design or similar it may not be super useful as a career skill, but learning x86 assembly and learning to build a basic CPU from logic gates were two steps along my path to fully grokking how a computer works which I found very useful.
- bigfishrunning 3y ago> discard 'assembly language' Hard disagree. HN tends to lean toward the browser-programmer crowd, but it's a big world out there, and there are lots of very small computers that don't run a browser. I would go so far as to say that assembly languages in general are a bit like lisps in general: learn one, and even if you never use it, you'll be a better programmer in other languages.
- gabereiser 3y ago>”Learning assembly language is basically useless at this point.” I whole heartedly disagree. There’s an entire class of performance tuning you can do to math intensive applications that absolutely require knowledge of assembly to squeeze that last 0.5% out of the machine. Video Games, Video Editing, Image Editing, Simulations, Scientific applications, all benefit from having some assembly sprinkled into their algorithms for speed. Because of this, I don’t need crates or packages to do things for me, I’m capable of doing it on my own. I’m capable of building a 64kb demo scene executable. I’m capable of building a hardware accelerated video decoder. I’m capable of parallel vector operations because I can haz assembly. I can disassemble and reassemble binaries, libraries, files, stacks. I can even inject my own code. If you have no need for speed and efficiency, then I’m sure a browser-based desktop app with some JavaScript will be fine for your use case.
- dingosity 3y agoJust a reminder... this is from comp.lang.python. It's not unbiased.