Skip to content

Instantly share code, notes, and snippets.

@cloudhead
Created December 27, 2011 02:41
Show Gist options
  • Star 11 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save cloudhead/1522576 to your computer and use it in GitHub Desktop.
Save cloudhead/1522576 to your computer and use it in GitHub Desktop.
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
@gertfindel
Copy link

what about sinatra or rails using jruby?

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

@thypon
Copy link

thypon commented Dec 28, 2011

Maybe too young, but you have to try GO.

@cloudhead
Copy link
Author

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

@thypon
Copy link

thypon commented Dec 28, 2011

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

@fbstj
Copy link

fbstj commented Dec 28, 2011

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

@cloudhead
Copy link
Author

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

@Mab879
Copy link

Mab879 commented Dec 29, 2011

Whats wrong with Ruby on Rails magic?

@kragen
Copy link

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
Copy link
Author

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
Copy link

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
Copy link
Author

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
Copy link

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
Copy link

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
Copy link

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
Copy link

@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
Copy link
Author

@owainlewis but how about the java stack traces?

@owainlewis
Copy link

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