TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

How does one get off Haskell?

105 pointsby iamelgringoalmost 15 years ago

21 comments

mahmudalmost 15 years ago
He doesn't know this, but he really needs a good manager to mentor him. He is a classic case of a "Perfect Language Programmer"; people like him, if not supervised, can drive themselves insane and into isolation, not to mention poverty.<p>It's impossible to lose a refined taste once you develop it, and in my experience, the best way to overcome it is to have someone believe in you. If you don't have the business sense to discover an interesting niche where you can apply your skills to solve difficult problems for a small industry as an individual, the next best thing you can do is join a "boutique" shop headed by someone with excellent mentoring skills.<p>An ideal manager would be someone who appreciates your skills, but can also steer you firmly when conformance is necessary to reach an important objective. People like those generally love to exploit automation; you will be allowed to write all the haskell you need for in-house tools and automate your development processes, maintain data, and generally oil the office engines. However, for the pieces of software that you need to <i>ship</i>, you will be given enough boilerplate code and development guidelines to make the temptation of the Perfect Language impossible; you wont be as eager once you get your fix coding peripheral projects anyway. It's always a good idea to start at maintenance, that way you get a good understanding of the infrastructure, while absorbing their development culture and the Ugly Language. Maintenance code is usually big and important, and you will not even think about rewriting it in something else.<p>To get a job, I would start by responding to job ads that state problems, not those the prescribe solutions. My initial exchanges with them will be informal emails, never send your resume off the bat. Inquire about the project, ask questions, and demonstrate your skills. You will get more response by being humane and eloquent. Explain to them that the technology is the same underneath, that you have a deep knowledge of the fundamentals, and that their job is phrased such that it asks for individual instances and ignores the big picture. An analogy or two might come handy, internal-combustion engineer vs Honda Civic mechanic. It's always a good sign when you see companies advertising positions that require broad skills, across languages, APIs and platforms. It means it's a development shop, or they're at the exploration stage and you might be able to influence decisions.
评论 #1441607 未加载
评论 #1442811 未加载
dschobelalmost 15 years ago
A nice answer to a silly question:<p><i>Ultimately the problems to be solved are the same, it's just that java and c++ give you a lot of padding where you're writing boilerplate and workarounds for not having closures, monadic values, a nice type system, etc. It could be relaxing in the same way that playing 3rd trombone could be: you still get to play technical music every once and a while, but you also get a lot of downtime to count rests and listen to the music, or play whole notes. There is a pleasure in that, even if it's not the same as when you're in the 1st violin section. Music is still being made, problems are still getting solved.</i><p><a href="http://www.haskell.org/pipermail/haskell-cafe/2010-June/079088.html" rel="nofollow">http://www.haskell.org/pipermail/haskell-cafe/2010-June/0790...</a>
评论 #1441570 未加载
Dovealmost 15 years ago
A self-professed perl hacker, my first Real Programming Job had me working eight hours a day in a horrid little proprietary scripting language without pointers (or references), without proper data structures beyond arrays, and with a long list of language warts and misfeatures. Three things got me through it.<p>#1: Work on a project you believe in. Are you doing something great? Something world-changing? Are there people you care about who are going to really appreciate your work? Do you really, really wish that what you're building existed? That'll help you slog through with the technology you're forced to use.<p>#2: Mentally prototype in your language of choice. I was coding in CrapplyLang but I as <i>thinking</i> in perl. My code was littered with comments that said, "In perl, this would be &#60;oneliner&#62;" followed by thirty to fifty lines of terse nasty.<p>#3: Get out before it causes permanent damage.
评论 #1441999 未加载
评论 #1442000 未加载
FlemishBeeCyclealmost 15 years ago
I love Haskell as much as the next guy, but are we to believe that he has simply forgotten how to program in an imperative fashion? I doubt that. I guess he's asking "how do you make programming in ____ less painful"? That's a very open-ended question. Maybe I'm reading it wrong, but if this gentleman wants serious responses he might want to get a bit more specific.<p>Otherwise it just comes off as a roundabout way to talk about how awesome Haskell is.
评论 #1441538 未加载
评论 #1441545 未加载
plinkplonkalmost 15 years ago
I think his real question maybe "How can I make money writing Haskell?". I sympathize, but I don't have a generic answer yet. In India the skillset in demand is j2ee/dotNet.<p>Thankfully, <i>my</i> clients don't care about what languages their solutions are written in. (The web is the "gui" in any case) so I've built systems in Haskell and got paid for them.
dasil003almost 15 years ago
Why must one swing between such extremes? From a language built to further the state-of-the-art of programming itself, to a language designed to prevent anything ever surpassing the lowest common denominator in massive monolithic corporate environments? (okay that doesn't describe PHP, but let's not go there).<p>Seems like there's ample middle ground with Ruby, Python, Scala, maybe even Perl. It doesn't do anything for the underlying fact that most work that's easy to find is pretty boring, but I suspect a little fun could be had along the way. It's not likely to be a huge time sink either... the author's functional thinking will ensure quality is high even if he feels dirty cutting corners to get the job done quickly so he can get back to his mistress. No one will ever be the wiser.
defdacalmost 15 years ago
I think language agnostic programmers are more genuinely interested in programming compared to fanbois.<p>That said you will always be a bit faster in your "native" language. Your native language skills benifits with experience from other laungages.<p>There isn't a Golden Hammer.
评论 #1441580 未加载
评论 #1441870 未加载
shin_laoalmost 15 years ago
Oh my. Someone complaining that he has to program in a language different than his favorite language to make a living.<p>Most human beings have to work extremely hard to earn food for the day.<p>I'm genuinely shocked by such a "spoiled child" attitude.
评论 #1441691 未加载
评论 #1442318 未加载
评论 #1441608 未加载
评论 #1441998 未加载
revoradalmost 15 years ago
The first reply is rather amusing: <i>Become the farmer. The life in village brings advantage for health more.</i>
allendalmost 15 years ago
Never used Haskell, so if are Haskell-ian soul trapping sirens I am not aware of, ignore this dumb post.<p>1. There are languages out there you have not used.<p>2. Get rid of biases and give second chances to the ones that you have.<p>3. Maybe you are right. You'll never be able to get off Haskell. Stop complaining, and go do something else. Math, art, biology, business, some of that shit is pretty fucking interesting.<p>"Il faut aller voir"
评论 #1441720 未加载
jcromartiealmost 15 years ago
I'd encourage idealist freelancers to try Clojure. It's very much idealist and completely practical at the same time. And, yes, there are monads.
edwtjoalmost 15 years ago
You don't, you just adapt to the rest of the world and use it given the appropriate opportunity.
stcredzeroalmost 15 years ago
My answer: Don't. I think London might be a nice place!<p><a href="http://www.google.com/search?q=haskell+jobs" rel="nofollow">http://www.google.com/search?q=haskell+jobs</a><p>Work for a startup!
strlenalmost 15 years ago
This is a fairly interesting discussion. I'm not a Haskelite (if I had to pick a favourite language it would be OCaml, with Common Lisp and plain-old-C being close seconds), but I can understand where he's coming from. I'd imagine most people on this site at in the same boat: we don't get to have full freedom to choose our tools (in some cases even if we're running our own companies: there are many interesting projects where our favourite tools are the <i>wrong</i> tools for the job). That doesn't mean we should lose passion for those tools, nor does it mean that we can't find meaning and enjoyment in our work.<p>Oddly enough, I've found this sort of inspiration when I was reading "Programming Pearls". The author managed to maintain an very upbeat and enthusiastic tone, pointing out clever hacks, even when he talked about programming in Cobol and BASIC. That helped me regain the sight of the fact that as a professional programmer <i>and</i> a (for lack of a better word) computer nerd, I was lucky enough to be in a place where I could make a profession out of my passion. Most people aren't that lucky. The fact that I don't always get to choose my tools shouldn't let me get in the way of enjoying programming: I love to program, when I drive in to the office, I'm going to be programming.<p>Ultimately, though, the advice I would give is:<p>* Look for interesting and non-trivial work, irrespective of what language is used (that criteria does generally disqualify some of the most frustrating and boring "niche" languages e.g., SAP, ASP, Coldfusion, PHP, Visual Basic).<p>A common pattern I've noticed when interesting languages are used for mundane problems in start-ups is that as soon as the initial generation of developers leaves (and the start-up becomes a modestly profitable midsize company: most stay that way, rather than become "the next Google") management pressure grows to switch to blub.<p>* Consider non-blub languages that on .NET and JVM: F# (being worked on by Peyton-Jones!), Scala (surprisingly many Haskell hackers are involved in it, despite Scala being far closer to OCaml), Clojure (borrows several ML family concepts in a <i>very</i> interesting way -- that alone would actually make it interesting even if it didn't run on the JVM)<p>* Additionally, consider a full time job rather than projects and free lancing. If technology is a company's core competency, they're going to be very reluctant to outsource its development (typically exceptions are only made for exceptional individuals who are unwilling to sign on full time and even then it's often difficult to do).<p>Almost axiomatically, some of the most interesting software work is generally done by companies where software is the core competency (the big exception being things like computational finance and scientific/medical computing or highly innovative enterprises such as Amazon [pre-AWS -- AWS made them a genuine tech company] or PayPal). Thus, if you only choose to work on a freelance/project basis you're likely locking yourself out of very interesting jobs. Of course, this doesn't apply if you're in an area where most of the full-time jobs are in the outsourcing industry (either in offshoring firms or in off-shore offices of foreign firms).<p>* Use Haskell (or whatever else you like) as your secret weapon. Build prototypes in it and then once you have a clear mental picture implement them in another language. Write tools in it to automate away the drudgery (code analysis, debugging, verification: things Haskell is great at).<p>I should add that C and C++ shops tend to be slightly more open to this use of Haskell, OCaml, Scheme and other uncommon languages: C/C++ are not very scalable languages when it comes to "scaling down" to scripting and automation work. Nonetheless I also know of people prototyping Java and Scala code in Haskell as well.<p>* Don't forget that Haskell, Common Lisp etc... jobs are out there. They're just rare. They also typically look for individuals with specific skills rather than individuals skilled at specific languages e.g., you're more likely to find a Haskell job if you've written static analysis tools in Java than if you've written web apps in Haskell. ITA software very specifically stated that they don't require new hires to know Lisp, they want smart people whom they're willing to invest in and educate. "I really want to program in X language and you're one of the few places that uses it", unfortunately, won't persuade them if you can't pass their technical interview (unless they're specifically looking for an evangelist rather than a developer).<p>If you can manage to provide a more or less stable situation for yourself which lets you develop new skills, you can always switch when tgw opportunity comes. Technology job market is usually fluid. If you're not constantly thinking "how will I get the next contract, what money will I live on" you don't have to keep taking jobs you don't like (only to discover a posting for a "perfect job" a week after you begin a new six month contract).<p>Finally, remember that there are people who hate Haskell, Lisp etc.. too <i>when they are forced to use it</i>. There's no better example than university students. I was unfortunate enough to be exempt (as a CS major in School of Arts and Sciences vs. a CSE student in the School of Engineering) from taking a specific undergrad course (the equiv of 6.001 or CS68a) that was taught in Haskell. I couldn't enroll in the course, as the priority went to students from whom it was required. I was green with envy, but most students absolutely <i>hated</i> it. I volunteered to help out my Berkeley friends with CS68a (their SICP class), but they endlessly complained of not knowing what the point of the course was (especially the non-CS students who had no prior or following programming experience).
moron4hirealmost 15 years ago
I don't understand the issue here. 1) You've identified the problem: programming in Haskell isn't making you as much money as programming in Java. 2) You've identified a course of action: stop programming in Haskell and program in Java. It's not like this is even a South Park dilemma, there is no "Step 3: ???" before "Step 4: Profit".
评论 #1443003 未加载
评论 #1443055 未加载
Tichyalmost 15 years ago
I am kind of in the same situation, sans the Haskell part (haven't really tried it yet).<p>One way I hope to at least endure Java is to do Android development - at least then the results are cool.<p>Otherwise, I guess try proposing Clojure, or move on to Ruby. My problem with that is that I haven't really warmed to Rails yet, but possibly Rails 3 might fix that.
jaekwonalmost 15 years ago
Does anyone have a meaningful productivity comparison between Ruby and Haskell? Ruby is slow but I find it expressive enough. Unless you're doing intensive data processing, I wonder how you would like Ruby.
评论 #1442777 未加载
10renalmost 15 years ago
The actual writing of code is the easy part of programming; it's the conceptual solving of problems that is difficult. If you think in terms of any particular language, you are limited by those terms.<p>Possibly, he's partly upset about the type of problems that he'd be solving in those languages, rather than the languages themselves.
stonemetalalmost 15 years ago
Sounds like one of those kids who will only eat cheese pizza. Just because X is your favorite doesn't mean you can't run with something else for a while. Enjoy the things you don't get in your language of choice.
gphilalmost 15 years ago
The OP should just get a non-programming job to pay the bills, just like many artists and musicians have to hold "day jobs" to support their passion.
jrockwayalmost 15 years ago
He answered his own question -- by scraping the bottom of the barrel for projects that should have been outsourced to China for three cents an hour.