Ask HN: Do you use a language not normally associated with web development?

4 points by open-source-ux ↗ HN
When I say web development, I mean specifically server-side programming rather than client-side programming.

Examples of languages that are associated with server-side programming (some more strongly than others): PHP, Python, Perl, Javascript, Java, Go, Ruby, Haskell, Erlang, Scala, C#, ASP.NET, Lua (and no doubt others I may have missed).

But is anyone using a language that isn't normally associated with server-side programming? For example: Ada, C, D, Eiffel, Smalltalk, Oberon, Pascal, Basic, Prolog...or some other language?

If you are using a language not normally associated with web development, what are your reasons for using that language? Is it familiarity or fluency? It for speed or performance reasons? Is it because of unique features you miss in other languages? (Or the way a feature is implemented?)

Is there a lack of web-related libraries for your language, and if so has it ever been a problem?

16 comments

[ 3.2 ms ] story [ 46.6 ms ] thread
I'm using PureScript because it is purely functional and has a powerful type system like Haskell, but compiles to JS with easy FFI and I can use it with webpack. I'm writing both a backend API server and frontend app with it. It's been amazingly productive and a godsend for writing type-safe JS.

On the front-end, it has purescript-pux, which is pretty much a port of the Elm architecture. The language/community is really shaping up.

I really, really, want to use Racket and have been looking into it some more. But the problems are lack of web libraries and a slow http server (which can be fixed).
I used to work for a company which heavily used TCL[0].

When I started working there, I really questioned his decisions about the stack and the language in general ( everything is a string )

After a few weeks I realized that, this stack was blazing fast in combination with the NAVI[1] server which is written for high performance web sites.

This guy wrote everything you could possibly think of in TCL.

That company is powering a ton of enterprise grade e-commerce web sites.

I still see it as a secret weapon and I'd probably use it as well if there wasn't my fetish for statically typed languages.

edit:

As a side note, I'd like to mention that this guy taught me that I shouldn't go with the hype but just choose a language/framework that helps me finishing my projects.

[0] https://en.wikipedia.org/wiki/Tcl [1] https://en.wikipedia.org/wiki/NaviServer

I'm interested in hearing more. Are you allowed to tell us more about the company? Number of employees? It sounded like you got hired to do TCL without knowing TCL. Why was it a secret weapon? Was it productivity?
> Are you allowed to tell us more about the company? Number of employees?

We were around 15 people ( sales, design not included )

> It sounded like you got hired to do TCL without knowing TCL.

Indeed, in their job description, they just wrote that I had to be curious and willing to learn something unusual. They didn't mention TCL.

> Why was it a secret weapon?

I would say flexibilty, it was quite impressive to watch how his very own web framework evolved. He would check out new frameworks over night, if he liked some patterns/features etc. from other frameworks, he would just put it into his own framework over night.

The most impressive part, was probably the loose coupling of all the software components.

There wasn't some kind of an ORM, just pure handcrafted optimized SQL.

The secret weapon was, how he ignored other opinions.

Just a few examples, for some people OOP is the way to go, anything else is just unacceptable. They are forcing themself into a corner with limited options. I agree, OOP is awesome but it's not the solution for all our problems, in TCL we just could switch from OOP to imperative or to functional without breaking anything.

As already described above, plain SQL is already the best DSL for databases, we didn't have any abstraction layer on top of that, which we had to learn.

I don't agree with all his opinions but I do agree on the fact, that we software engineers tend to over engineer things.

Oh wow!

As soon as I read TCL, I started having flashbacks of trying to write TCL scripts for my eggdrop IRC bot in the early 2000s.

It's amazing to hear that a company actually runs on it!

that's what I thought of also..."tickle tk"
This reminds me of the ArsDigita Community System by Philip Greenspun and his company, all written in TCL, until I think there was some Java rewrite at about the time everything went wrong.
>This guy wrote everything you could possibly think of in TCL. >That company is powering a ton of enterprise grade e-commerce web sites.

During the dot-com boom (late 1990s through early 2000s) there was this company called Vignette which was using Tcl on the server for e-commerce, IIRC. They had a product in Tcl, which could be customized for various e-commerce apps, I think. Probably the USP was RAD, Tcl being a scripting language.

Also I read about AOL using AOLServer which was written in Tcl.

Crazy world where JS is considered server-side but C isn't.
What is C associated with if it isn't "server side". It must be be server side, you can't exactly compile and run C code "client side".
Sorry, my fault for being unclear. When I said server-side, I meant languages used for creating dynamic web sites rather than for writing web server software.

Obviously, C is used for writing server software like Apache and Nginx. And also used for implementing interpreters for dynamic languages like PHP.

However, my impression(which may be incorrect) is that C isn't normally used for creating dynamic web sites in the same way as PHP or Python. Hence, why I put it in the category of languages not typically associated with web development.

>However, my impression(which may be incorrect) is that C isn't normally used for creating dynamic web sites in the same way as PHP or Python.

Likely true. FWIW, there is a web framework for C++.

https://www.webtoolkit.eu/wt

Also just googled for "C++ web framework", there are others like TreeFrog, which seems to be updated this year.

Don't know more as of now.

Smalltalk: Pharo for personal projects, VA Smalltalk for work. Scheme: I am rewriting all my automation scripts in GNU Guile. Erlang: When my Smalltalk Seaside prototype sites cannot handle the load, I will rewrite in Erlang Cowboy.
I've worked with C, C++ and VHDL. Now a days mostly Python. It's much more productive.

EDIT@ Oh, you mean to actually do web dev with one of those languages, no, never did web dev with C or C++ sorry