Hacker News new | past | comments | ask | show | jobs | submit login

Just providing some useless ramblings here...

You're a web developer, and you don't know what to do (in terms of how to spend your time) with a language geared toward systems.

That makes a lot of sense! At a certain scale, they're different types of work. It's like saying, "I'm a race car driver with a fighter jet. I've always admired them, but I'm just not sure where to fly!"

These types of languages, and more broadly any compiled language like C or C++, are very well suited to solve problems that your dynamic or scripted language can't solve at scale. Say, for example, as a web developer you built a website on Ruby on Rails that converts user-uploaded photos to morph, based on some algorithm, into a cute, unique photo of a kitten.

You have several concerns here: - Processing the image, hopefully in the background so it's non-blocking and you can control resource needs. - Storage. Is it on a local disk? S3? Something close by but on the network? If you have a performance bottleneck, is I/O an issue? - Memory/CPU. How many resources are needed for n- jobs? Is it starving resources from serving additional web requests (really a separate concern, when you think about it!)

I would say for these types of problems (and this is admittedly a contrived example), Rails + some Gem or even pure Ruby might just absolutely suck and eat it.

These specialized languages can be a super useful tool for figuring out "simple problems with complicated solutions." They also offer the comfort of compiling down to a binary that might have no external dependencies (so, very portable depending on the compiler/runtime, and probably very reliable).

Is that the right thing for a pure web developer to play? Depends on the developer, but it's not surprising you're not quite sure what to do with it. It's possible you just don't have the right type of problem to solve yet.

That being said, Rust or Go are still fun to play with! Good for you for exploring.




That's exactly what I mean. :) A lot of the things I rely on for web development are so advanced under the hood that I don't even know where to begin. Like, let's say I want to write a tool that will let me take photos, resize them, crop them, add watermarks. I don't even... where do you start?

I wrote an LZW compressor in Rust 0.9 way back when, and it sucked pretty badly, but I wouldn't even know how to open a JPG or PNG, much less the mystical art of resizing it!

Gotta start somewhere, I guess. :)


"Like, let's say I want to write a tool that will let me take photos, resize them, crop them, add watermarks. I don't even... where do you start?"

I would suggest perusing materials of a computer graphics course.

For instance, this course from Brown seems to have lecture notes online: http://cs.brown.edu/courses/cs123/lectures.html

http://cs.brown.edu/courses/cs123/lectures/CS123.08_Image_Pr...


Call up graphicsmagick - either through spawning processes or binding to the library. All of those are solved problems, so if you don't have time/inclination to learn how they're solved, just use something that already did :)


A humble approach and a curious nature are two components of every great engineer, so you seem to be doing fine!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: