Instantly share code, notes, and snippets.

Embed
What would you like to do?
Why I Don't Write Web Apps

Why I Don't Write Web Apps (if I can help it)

This is what happens when I try to pick a language.

Note: If I didn't think it was possible to create a development environment without any of these issues (which I consider "major" for the most part), I would not have written this list.

C/C++

  • NOTHNX.

Node.js

  • Javascript is weakly typed.. boo.
  • Cooperative multitasking.. booo.
  • No threads, V8 memory limits, all the joys of a browser VM.
  • The Java influences can still be felt.

Ruby (Rack)

  • Sloowwww..
  • Doesn't have language-level I/O concurrency & scheduling (Fibers don't count).
  • Crappy package management.
  • Classical OOP meh (although it is probably my favorite implementation of classical OO).
  • Too much magic, even in the language itself.

Ruby on Rails

  • brb—forgot my saddle.

Python

  • Sloowwww..
  • Doesn't have built-in language-level I/O concurrency & scheduling.
  • Classical OOP meh.

Clojure & Scala

  • The Java ecosystem.. stab, stab.

Note: Clojure might be the perfect language, if it didn't run on top of Java.

Erlang

  • The fucking records.
  • The fucking stack traces. (Haven't tried R15 yet)
  • The fucking stdlib.

Note: This is my current choice for large applications.

Haskell

  • That would be like using a bat-mobile to go grocery shopping.
  • It also feels like a bad fit overall, looking at code from yesod etc.

.NET

  • m$

PHP

  • LOLPHP

Go

  • Too young
  • Disregards 30 years of programming language design.

Lua

  • Not ready for the web
@navarr

This comment has been minimized.

navarr commented Dec 28, 2011

PHP isn't on this list.

@cloudhead

This comment has been minimized.

Owner

cloudhead commented Dec 28, 2011

Oh shit I forgot. (added).

@kares

This comment has been minimized.

kares commented Dec 28, 2011

seems to me you've chosen .NET then :) ?

@svnlto

This comment has been minimized.

svnlto commented Dec 28, 2011

or even ColdFusion.. eww. ;)

@cloudhead

This comment has been minimized.

Owner

cloudhead commented Dec 28, 2011

Agggg — added .Net. Also, why is LOLPHP so big?

@kares

This comment has been minimized.

kares commented Dec 28, 2011

@cloudhead keep it, that's a big one :)

@gertfindel

This comment has been minimized.

gertfindel commented Dec 28, 2011

what about sinatra or rails using jruby?

  • not slow
  • nice concurrency
  • lots of ruby magic =)
@thypon

This comment has been minimized.

thypon commented Dec 28, 2011

Maybe too young, but you have to try GO.

@cloudhead

This comment has been minimized.

Owner

cloudhead commented Dec 28, 2011

@gertfindel: that falls under the "Java ecosystem, stab, stab.." banner. It's also still pretty slow under Jruby..
@thypon: added.

@thypon

This comment has been minimized.

thypon commented Dec 28, 2011

@go: maybe we need a complete reboot :-D

@fbstj

This comment has been minimized.

fbstj commented Dec 28, 2011

BASIC? shell script? an assembly language? lisp? perl? :p

@cloudhead

This comment has been minimized.

Owner

cloudhead commented Dec 28, 2011

@thypon: hah, I'd say we need more of a renaissance.

@Mab879

This comment has been minimized.

Mab879 commented Dec 29, 2011

Whats wrong with Ruby on Rails magic?

@kragen

This comment has been minimized.

kragen commented Dec 29, 2011

Vaguely amusing but are you really going to wait until the perfect language comes along before you start making what you want to make? It may seem impossible to write a good web app in C, but Raph Levien did it. The impossible is what hackers do.

@cloudhead

This comment has been minimized.

Owner

cloudhead commented Dec 29, 2011

Of course the title isn't meant to be taken seriously, in the end you have to deal with the imperfections if you want to build anything. That being said, there is no language/environment I thoroughly enjoy for web development.

@Glench

This comment has been minimized.

Glench commented Dec 30, 2011

Haha. I gotta say, though, if you're running into slowness issues (I'm assuming slow in regards to CPU time) with a web-app, you're doing something wrong.

@cloudhead

This comment has been minimized.

Owner

cloudhead commented Dec 30, 2011

Really? When you look at the typical Rails app with mininal I/O, and it takes at least 100ms to go through the stack, that is slow..

@Glench

This comment has been minimized.

Glench commented Dec 30, 2011

If that's true then you're right, rails is doing something wrong. :)

I/O should always be the principle bottleneck in a web app.

@Mab879

This comment has been minimized.

Mab879 commented Dec 30, 2011

@cloudhead My app takes about 46.3 ms to load the homepage. No were close to 100 ms or over.

@fbstj

This comment has been minimized.

fbstj commented Dec 30, 2011

@cloudhead your lack of enjoyment for web dev probably comes from a dislike of how the web works, I know mine comes from that lol

@owainlewis

This comment has been minimized.

owainlewis commented Jan 3, 2012

@cloudhead I'm definitely finding Clojure to be the perfect language for me. The Java stuff isn't a bother at all and it's nice to have access to the libraries if you want them.

@cloudhead

This comment has been minimized.

Owner

cloudhead commented Jan 3, 2012

@owainlewis but how about the java stack traces?

@owainlewis

This comment has been minimized.

owainlewis commented Jan 3, 2012

Yeah I'll admit they are a bit cryptic sometimes but I've not really had much issue. They are often helpful enough. I find myself not wanting to use Ruby as much anymore after spending time with Clojure. Definitely worth a good look even for web stuff. Your work is awesome by the way! : )

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment