Live data from Hacker News

Choosing a Web Framework/Language Combo for the Next Decade

jacquesmattheij.com

101–110 of 228 posts

Re: Choosing a Web Framework/Language Combo for the Next Decade

#101

Earlier quoted context omitted.

If you arbitrarily reject everything unfamiliar then filter the remainder for stability you wind up with unremarkable stuff that will get the job done. There are better ways to write web apps but you're not going to find them following the process outlined in the post.

Boring unremarkable stuff that gets the job done sounds great to me. Sexy, new, hot, flashy are exactly what I'm trying to avoid getting sucked in to (though, believe me I can feel the draw). The life-cycle of the software underpinning what I build is as important or even more important than whether or not it is 'the best way' to do something today. Because that best way is the bleeding edge and the day after tomorro…

Your decision process isn't the same one I would have gone through* but it's rational. I was responding to the conclusion that "nothing out there is very good".

* I believe that the incidental complexity in web development is rooted in state and in the interactions between various pieces of state in the app. Choosing tools and patterns that reduce state generally results in composable abstractions and more reliable systems. I don't have the solution to web development (FWIW, I use Clojure server side and React client side) but evaluating every new tool I come across against this criterion makes it easy to decide whether to adopt it or not.

Re: Choosing a Web Framework/Language Combo for the Next Decade

#102
I've been in a quest for my favorite web server technology as well for the last 2 years, so this definitely rings a bell. I pretty much agree with evertyhing the author said, except for one :

Dismissing python due to maintenance difficulties and not Ruby seems weird. Both are highly dynamic languages with not much help from static analysis, and this is for me the reason why maintenance may be hard.

The fact that whitespace was an issue to OP probably means he never used PyCharm. I haven't had any single syntax issue since I started using this IDE.

Re: Choosing a Web Framework/Language Combo for the Next Decade

#103
post #77
post #17

I (naturally) think that the article's summarily dismissing Haskell is unfortunate. It's probably just the result of poor PR on Haskell's part. Haskell is not only for surpassingly intelligent people, or even optimized for them. If anything, it's the opposite: one of its core tenants is that we're not smart enough to reason about our programs in most languages. Much of the design work focuses on unloading complexity…

The problem with Haskell is its syntax. Too many arbitrary and traditionless things to memorize. It's curious that the Haskell developers try to one-up the rest of the language space in nearly every other space, but choose such a weird and unhelpful syntax. Look at Python: The only reason people started to use it is because of the syntax. Now it's slowly eating Matlab and R in science - two specialized languages beat…

> The problem with Haskell is its syntax. Too many arbitrary and traditionless things to memorize. It's curious that the Haskell developers try to one-up the rest of the language space in nearly every other space, but choose such a weird and unhelpful syntax.

I've seen this criticism before, and I don't understand it. The syntax of Haskell is not that big. There are some things a bit funky about it, especially the indent rules, but I don't see what there is to be mystified about.

On the other hand, it does introduce a lot of mind-bending concepts if your background includes imperative programming and no category theory, and that's typically what people find hard to grok. You don't find a pile of "Haskell syntax cheatsheets", you find a bunch of monad tutorials instead.

Re: Choosing a Web Framework/Language Combo for the Next Decade

#104
post #96

Earlier quoted context omitted.

Yes, I was going to mention that too - it's a bit ironic saying that Tcl ( not TCL!) is not ok for the web when it was used for some of the first serious dynamic content web systems.

I thought I wrote 'modern web'. I'll update if I got that wrong, and I'll update the spelling too. Edit: good catch David, I used modern web in one instance and 'web' in two others. Changed that to be consistent. TcL now properly spelled. Have a well deserved upvote :)

> TcL now properly spelled

The l is a small l. Kind of like Fortran vs FORTRAN or Cobol vs COBOL or Perl vs PERL. Tcl people prefer Tcl.

I actually think Tcl would be fine for the modern web (it had an event loop before it was cool to have an event loop), but you could easily eliminate it for many of the reasons you eliminate other things - not too many people working on it, not as many ready-made components as something like Rails, and so on.

Re: Choosing a Web Framework/Language Combo for the Next Decade

#105
post #89
post #17

I (naturally) think that the article's summarily dismissing Haskell is unfortunate. It's probably just the result of poor PR on Haskell's part. Haskell is not only for surpassingly intelligent people, or even optimized for them. If anything, it's the opposite: one of its core tenants is that we're not smart enough to reason about our programs in most languages. Much of the design work focuses on unloading complexity…

After fairly long time playing with Haskell, I find it quite beautiful and pleasure to use, but only for theory/book-ish use cases. As for real world usage - it is quite ugly and cumbersome, e.g. when you need some error handling and multiple monads using (with transformers), etc... Another quick way to measure this - compare that beautiful pseudo quick sort to real quick sort (e.g. using Array.ST)...

I have to say that I agree with you. In principle, I find the notion of an effect system extremely powerful, both for safety and optimization, but Haskell's way of intermingling effects using monadic towers is terribly awkward and cumbersome, not to mention that it comes with a mental cost.

Re: Choosing a Web Framework/Language Combo for the Next Decade

#106
post #17

I (naturally) think that the article's summarily dismissing Haskell is unfortunate. It's probably just the result of poor PR on Haskell's part. Haskell is not only for surpassingly intelligent people, or even optimized for them. If anything, it's the opposite: one of its core tenants is that we're not smart enough to reason about our programs in most languages. Much of the design work focuses on unloading complexity…

I disagree. Haskell is unfamiliar, AND it's difficult. They're separate.

In any case, I'm definitely not smart enough to use it. The issue isn't functional programming, though, which is why Elixir looks very interesting.

Re: Choosing a Web Framework/Language Combo for the Next Decade

#107
post #77

Earlier quoted context omitted.

The problem with Haskell is its syntax. Too many arbitrary and traditionless things to memorize. It's curious that the Haskell developers try to one-up the rest of the language space in nearly every other space, but choose such a weird and unhelpful syntax. Look at Python: The only reason people started to use it is because of the syntax. Now it's slowly eating Matlab and R in science - two specialized languages beat…

> The problem with Haskell is its syntax. Too many arbitrary and traditionless things to memorize. It's curious that the Haskell developers try to one-up the rest of the language space in nearly every other space, but choose such a weird and unhelpful syntax. I've seen this criticism before, and I don't understand it. The syntax of Haskell is not that big. There are some things a bit funky about it, especially the in…

Yeah, but if the monads were the only problem it would be ok (for me at least). But I'm asked to learn monads while also learning this weird syntax. I'm asked to learn something I don't understand in a syntax I don't understand. It's a bit too much. Like a math lecture in which, aside from the new concepts, the lecturer has decided to replace the traditional symbols (+,-, etc) with his new and equally arbitrary ones (¤, @). Except, of course, that Haskell's syntax is often more arbitrary than its competitors.

Re: Choosing a Web Framework/Language Combo for the Next Decade

#108
post #99
post #17

I (naturally) think that the article's summarily dismissing Haskell is unfortunate. It's probably just the result of poor PR on Haskell's part. Haskell is not only for surpassingly intelligent people, or even optimized for them. If anything, it's the opposite: one of its core tenants is that we're not smart enough to reason about our programs in most languages. Much of the design work focuses on unloading complexity…

I'm all for trying something unfamiliar, and I could even argue for Haskell that way, but from a different angle. I would say that adopting a language for the next 10 years that doesn't have purely functional data structures at its core is a fool's errand. Persistent data structures, i.e. efficiently storing every version of your data structure, is the natural reflection of the new reality in computing where: * stora…

Living in Romania right now, but I'll ping you when I'm back in NL (I go there at least once every few weeks), Clojure seems to be the most approachable from the languages you list.

Besides your listed reasons mutable state is becoming a bigger and bigger bottle neck as the number of cores goes up and that's why functional programming is becoming more and more important. It also makes programs much harder to write in a bug-free manner and it makes testing much more difficult (if not impossible).

It's one of the core reasons why I felt so bad about dropping Erlang from the list because I feel that it gives me that plus a battle tested environment to work with.

Still tempted to put it back in. Your reasons add weight to an already very difficult decision, whether or not to pursue this opportunity as a way to get more into functional programming or to stay in my 'comfort zone'.

I've been toying around with FP on and off for the last couple of years and it is one of the most important revivals the computing world has seen to date (imo of course).

Re: Choosing a Web Framework/Language Combo for the Next Decade

#109
Hi jacquesm, if you're reading this..

I recommend that you take a second look at Scala. Considering that you "have a working knowledge of Java (but really don’t like it)", I think Scala is a good choice.

The usual cliche-but-true reasons:

A. It runs on the JVM, arguably the most performant VM.

B. It has mature, huge (Java) ecosystems. High quality IDEs, rich (3rd party) libraries, a plethora of build tools (for better or worse) and profilers.

But for me personally, the things I like about it:

1. I can use different languages (as long as it runs on the JVM, obviously) for different needs. Probably not wise to mix a dozen languages (http://en.wikipedia.org/wiki/List_of_JVM_languages) in a project, but at least I have a choice.

2. Since I'm a Java developer during the day, I can reuse my skills (can use same framework, same debugging approach, same build system).

3. I can start coding with Java/imperative style. When I started learning Scala, I literally coded like in Java, minus the semi-colons. Over the time, I enhance my coding style because I keep thinking, "There's gotta be a better way of doing this." At least this lowers my barrier to learn Scala.

EDIT: IntelliJ allows you to copy Java code and paste it as Scala.

Obviously you can replace "Scala" with "any JVM language other than Java", but I have my specific reasons in choosing Scala (over, say, Clojure).

Re: Choosing a Web Framework/Language Combo for the Next Decade

#110

Interesting views on Python - I decided to start using it for personal projects after trying Go for a bit. Initially I hated the significant whitespace, and indeed many other things, but I stuck with it and I find it all rather elegant - I certainly haven't noticed any huge problems with dependencies but I've probably stuck with pretty mainstream ones (e.g. Requests). I now rather like significant whitespace and ofte…

I like significant whitespace too, but it is not without its drawbacks (eg, sometimes you need to wrap things in parentheses when you want a linebreak). Playing with Rust reminded me that you can do very nice things with a curly-braced syntax as well.
Post reply on HN