Live data from Hacker News

Ask HN: What new or hot technology do you recommend learning?

news.ycombinator.com

91–100 of 138 posts

Re: Ask HN: What new or hot technology do you recommend learning?

#91
post #82

Earlier quoted context omitted.

It's definitely possible to learn things from those languages. But languages that are trendy today (at least from my experience in the London job market) - Clojure and Scala - are really amazing, too, and have a lot of interesting ideas about concurrency, immutable data structures, and functional programming. Scheme, when compared to Clojure, seems a bit outdated now IMHO, although its extremely simple, small core ma…

If Scheme looks outdated to you compared to Clojure, I'd wager you are speaking from an unfamiliarity with modern Schemes like Chicken, Racket, and Guile. This is an unfortunate, but all too common a perspective, since most people who are exposed to Scheme are exposed to in in an academic environment where they only get to play with ancient, primitive Schemes such as MIT Scheme of SICP fame, and come away with an imp…

Racket is so different it's basically a different language, so I'm not really talking about that.

I do know Chicken and Guile have more advanced library support than the Scheme I worked with on SICP, but neither has as advanced concurrency features or advanced immutable collections, which is why Clojure seems to me a big advance on Scheme. Plus that you can leverage existing libraries on the JVM, plus its excellent compile-to-JavaScript support, etc., etc.

Re: Ask HN: What new or hot technology do you recommend learning?

#92
For someone that just started learning how to program about 6 months ago, I decided on Python and R and can write all the basic stuff, but can't write a complete application yet. I've also decided on learning Angular too, but I've not made any serious attempt. And that was after evaluating all the other JS frameworks out there - Ember, Meteor, etc.

Now from reading these comments, it looks like Elm and Elixir are good to learn too.

So the problem facing someone that's just starting out, is what to learn? Where do you start? The options are many and can be confusing.

Re: Ask HN: What new or hot technology do you recommend learning?

#93

Earlier quoted context omitted.

Too pessimistic. The new learns from the lessons of the old. I'd advise a new student to start with tools that reflected advancements in thought and practice. It might be cool to use the old tools because they are part of history; but its not helpful to the new student.

If only they were advances rather than regressions. Far too much overhyped technology actually sets back progress by decades rather than advances it. Unfortunately, "the new student", never having learned the lessons of the past doesn't know any better and is condemned to repeat mistakes and reinvent and rediscover poor imitations of older technologies while calling them new.

Ok, learning to code and learning to design languages are different tasks. Those writing 'new' languages would be well-served to study the history and progression of languages.

Those learning to code have enough on their plate, learning a mental model of computation and how to construct software for given tasks. History lessons are a case of 'too much information'

Re: Ask HN: What new or hot technology do you recommend learning?

#94
Nobody's mentioned Julia?! I love this language. I do scientific research and high performance computing and have been exploring this language extensively over the past year. Combined with something like iJulia (iPython), it's a very versatile tool for analyzing and processing data.

It's got a few quirks, but the language designers are improving it rapidly and the number of libraries available for it is increasing drastically.

To name a few features I really like about the language: multiple dispatch, flexible type system (use it if you need performance; ignore it if you want pretty code), powerful macro system, extensive debugging system (instantly view AST, LLVM, and native assembly output to optimize), easy parallelizability/vectorization, and just an overall beautiful language design (unlike C++ or Matlab for instance).

Things I dislike about Julia, but that should be changed soon: unintuitive automatic memory allocations (everything seems to allocate new memory by default which is a pain for tight loops because you have to write layers of functions that all take tons of "output variable" parameters), incredibly slow start-up times, and documentation that leaves a lot to be desired in terms of details (I normally have to call methods() in a REPL to figure out exactly what I need to pass into functions). Also, the module system seems a little more confusing than it needs to be.

Re: Ask HN: What new or hot technology do you recommend learning?

#95
post #92

For someone that just started learning how to program about 6 months ago, I decided on Python and R and can write all the basic stuff, but can't write a complete application yet. I've also decided on learning Angular too, but I've not made any serious attempt. And that was after evaluating all the other JS frameworks out there - Ember, Meteor, etc. Now from reading these comments, it looks like Elm and Elixir are goo…

I think learning Python is a great decision if you're new to programming. It'll expose you to fundamental programming concepts like: statements, loops, conditions, functions and even go deeper into object oriented concepts like abstraction, encapsulation and inheritance.

I always recommend people who are new in programming to start with Python because it's really flexible, has rich set of libraries and it's easy to get started.

Re: Ask HN: What new or hot technology do you recommend learning?

#96
I'd pick a type of project then pick a language/framework to learn. I'm not a big believer in learning something something just to learn it. You only get so far. I've got my own library of Haskell, Scala, and Lisp books but until I have something interesting to build, it's hard to maintain momentum. My two current projects are a Go web app hosted on Digital Ocean: http://thespanishsite.com

And I'm learning Swift to incorporate into my iOS apps. I've accumulated over 300 urls for anyone who wants to learn Swift: http://www.h4labs.com/dev/ios/swift.html

Re: Ask HN: What new or hot technology do you recommend learning?

#97
post #91

Earlier quoted context omitted.

If Scheme looks outdated to you compared to Clojure, I'd wager you are speaking from an unfamiliarity with modern Schemes like Chicken, Racket, and Guile. This is an unfortunate, but all too common a perspective, since most people who are exposed to Scheme are exposed to in in an academic environment where they only get to play with ancient, primitive Schemes such as MIT Scheme of SICP fame, and come away with an imp…

Racket is so different it's basically a different language, so I'm not really talking about that. I do know Chicken and Guile have more advanced library support than the Scheme I worked with on SICP, but neither has as advanced concurrency features or advanced immutable collections, which is why Clojure seems to me a big advance on Scheme. Plus that you can leverage existing libraries on the JVM, plus its excellent c…

I view lack of dependency on the JVM as an advantage of Schemes over Clojure. The last thing I want to do when developing in Scheme is learn or have to deal with Java or the JVM.

Chicken compiles down to C, so gets C's speed, size, and portability advantages. Chicken can also access C, Python, and Perl libraries, which aren't exactly lacking compred to those of Java. Not to mention that Chicken comes with a respectable set of libraries on its own, and that R7RS compatibility will bring a much larger "batteries included" core.

Guile is looking like its going to become the core of Emacs, and is an extension language for various other tools (like GIMP), so there are wins for learning it if you are interested in any of these ecosystems.

Re: Ask HN: What new or hot technology do you recommend learning?

#99
post #90

Earlier quoted context omitted.

The problem is that in the open source world, most projects use Git and most active old projects using SVN or CVS are slowly moving to Git. Many people out there who greatly prefer Mercurial to Git admit to using Git much more than Mercurial due to the ecosystem. See: https://fuzz.me.uk/git-vs-hg/ From Eric Raymond: >git won the mindshare war. I regret this - I would have preferred Mercurial, but it too is not lookin…

That's fine. Take Evolve as an an example of how git itself could improve. I'm fine with Mercurial being an experimental display of features that could go into git. Also, this whole popularity argument, if it were to be believed, could have killed Linux in favour of Windows or FreeBSD in favour of Linux. Just because something is popular doesn't mean that alternatives need to cease development or are not worthy of at…

I think the distinction is that Linux is very different from Windows in a lot of important ways, while Git and Mercurial are relatively similar in what they do and how they work. If someone invented a VCS that completely revolutionized the process (I really don't know how it could, but just hypothetically), then it could serve as true competition to Git.

This is one reason why D has failed to really take off. Both D and Rust are looking to essentially take C++'s place. D is C++ improved, while Rust changes the whole model of managing memory and also introduces some new paradigms (more type inference, pattern matching, etc.). D is clearly better than C++, but the two are just similar enough to make C++ a more preferable choice due to its immense popularity compared to D. Rust changes just enough to give it a chance at being a serious contender: the value may be higher than the cost of leaving C++ for many people.

The same applies to Git (C++) and Mercurial (D). Perhaps even more so, because while Git isn't perfect it generally "just works" for almost all use cases; Mercurial is just some simplicity and elegance on top of some workflows (which are sometimes emulated with wrappers over Git, like Legit). C++ on the other hand has a lot of warts.

Re: Ask HN: What new or hot technology do you recommend learning?

#100

Give Lua some love. Learn the language, learn the VM. Learn to integrate it with a set of libraries and so on. Lots of bleeding edge stuff runs on Lua and its a fantastic stack of technology to learn ..

The only problem with Lua is how slow it is. I'm quite fond of LuaJIT, though, because it isn't slow.

Lua is quite fast. The algorithms you can implement in Lua are all slow unless you want to make an optimized structure for every kind of lookup you want to do. Lua reminds me of a hobbled javascript.
Post reply on HN