Live data from Hacker News

Ask HN: How to rediscover the joy of programming?

news.ycombinator.com

311–320 of 337 posts

Re: Ask HN: How to rediscover the joy of programming?

#311
post #267

Earlier quoted context omitted.

I'm sorry but you are reducing a career to a mere interest. Changing hobbies is not the same as trying to change what you did for a living for the past decade.

Careers are not cast in stone. Some people do change their careers if they realize that there's something else that they'd really rather be doing with their lives. I've met an artist who became a doctor, a lawyer who became a stockbroker, a software developer who became a full-time professional musician, a professor who started a hedge fund, etc.

On the other hand if you are changing field because you are unhappy with your current situation it is relevant to ascertain that your current field is part/cause of the problem.

Re: Ask HN: How to rediscover the joy of programming?

#312
post #137

Earlier quoted context omitted.

>>> In my current job I write Python, which I really don't like very much and I get burned out on Python-specific things. I've used Ruby for several years, and I love the language. I wish I could use it today, in my daily stack, but unfortunately, Python won in the marketplace. Syntactically, Ruby and Python are pretty much equivalent, with Ruby appealing more to me. However, Python won - no arguments. Got to go with…

That doesn't make any sense. Use the right tool for the job. If "the winner" was all that mattered, we'd all be using Java now, and it would remain the top language forever, as long as it makes any sense at all to use -- not even requiring it to make more sense than other options.

Technological progress often evolves as a Scale Free Network[1] where the nodes with most present activities are likely to see the highest investment.

It is less of a problem for mature ecosystem and tools, but being in the "not winner" position will likely induce negative effects in the long term technological progress. (I am sure there are many counterexamples)

[1] https://en.wikipedia.org/wiki/Scale-free_network

Re: Ask HN: How to rediscover the joy of programming?

#313

Earlier quoted context omitted.

Yeah, in CL the 0.1 is read syntax for a float (IEEE-754ish on most modern implementations.) If you want exactly 0.1, you’d have to say 1/10. The printer is probably cheating and rounding to the output you expect (I think Python 3 may do this now?) Aside from financial applications, there’s very little reason to care about the trailing remainder.

> The printer is probably cheating and rounding to the output you expect northrup@Topaz:~$ sbcl This is SBCL 1.5.8, an implementation of ANSI Common Lisp. More information about SBCL is available at . SBCL is free software, provided as is, with absolutely no warranty. It is mostly in the public domain; some portions are provided under BSD-style licenses. See the CREDITS and COPYING files in the distribution for more…

    CL-USER(3): (rational (+ 0.1 0.2))
    
    5033165/16777216
    CL-USER(3): (rational 0.3)
    
    5033165/16777216

Re: Ask HN: How to rediscover the joy of programming?

#314
post #18

I had the same issue. Then I went back to the roots: Lisp And learned Clojure. You will feel like you know nothing. You will feel handicapped. You will be confused. Then, one day, you will understand what simplicity means and how Clojure's design embraces that more than in any other language I know. By then you will have embraced the flying-by-your-pants-exploratory style of programming at the REPL. And don't want to…

> You will feel handicapped. You will be confused. For anyone who wants to learn Clojure (or any Lisp) from scratch, here's my advice: Don't try to learn it by reading books. What I mean: don't try to mentally parse and analyze printed code written in Clojure. For uninitiated Clojure code may look like unreadable gibberish. If you try to understand Clojure code by merely staring at it, it may feel very exhausting. Re…

How is printed clojure code from regular clojure code? Sounds like a maintenance nightmare if the code can't be understood just by reading it.

Re: Ask HN: How to rediscover the joy of programming?

#315
post #314

Earlier quoted context omitted.

> You will feel handicapped. You will be confused. For anyone who wants to learn Clojure (or any Lisp) from scratch, here's my advice: Don't try to learn it by reading books. What I mean: don't try to mentally parse and analyze printed code written in Clojure. For uninitiated Clojure code may look like unreadable gibberish. If you try to understand Clojure code by merely staring at it, it may feel very exhausting. Re…

How is printed clojure code from regular clojure code? Sounds like a maintenance nightmare if the code can't be understood just by reading it.

I should've probably clarified: It is difficult to grok Clojure code only in the beginning - when you are new to the language. To many beginners, Clojure code at first may not look very intuitive. That is why I'm suggesting to learn it by "breathing it" - try changing it in an editor/IDE that supports structural editing and connected to a REPL - change an expression, eval it - see the results, expand, eval again, move onto the outer/inner level expression, eval, and so on. That way you quickly get the insight and learn how the language works. And it won't take too long to learn how to comfortably read and mentally parse "static" Clojure code.

After some time it becomes clear - Lisp is not harder to read. For some people, it's the other way around - going back to languages with C-like syntax may feel awkward.

Re: Ask HN: How to rediscover the joy of programming?

#316
post #243
post #174

Earlier quoted context omitted.

Javascript's biggest problem is its lack of a standard library. Hence the ridiculous churn of trivial libraries such as leftpad.

Lack of standard library doesn't account for web framework churn, though. Momentarily seemed like we had coalesced around Vue and React, and here comes Svelte, among others. It's incessant.

React was released 7 years ago in may and is definitely the most dominant framework and going very strong, and will be a good career investment for years to come. I think framing that "momentarily" for yourself is making yourself very unhappy - life changes constantly, as we see with this pandemic, and we need to have a little bit or willingness to accept change every five years or so, or perhaps we need to choose a field that has less competition (which is also why we enjoy great benefits and great pay). It should also be noted that both Vue and Svelte are extremely similar paradigms to React, and not at all the big paradigm shift that we saw from Angular to React.

Re: Ask HN: How to rediscover the joy of programming?

#317
post #298
post #171

Earlier quoted context omitted.

And the rest of the book deals with why it is more often than not painful. In summary, it's complexity. Brooks argues that software, being a pure thought-stuff, is also the most complex thing we attempt to build. And it's even worse now than in his time with any concern for quality taking a back seat in the face of competitive pressures. So it's not really surprising that slapping together ever more complex systems o…

It's so weird to me that software's complexity is such a force of nature. My instinct is that no implementation of a piece of software should ever need to be more complex than the idea of it is (fully and precisely articulated, of course). Yet the code is usually orders of magnitude more complex than that. I don't understand why we can't solve this problem.

The paper "Out of the tar pit" (https://github.com/papers-we-love/papers-we-love/blob/master...) discusses this in more details. Basically it argues that one needs to separate the complexity into essential complexity (complexity inherent to the problem) and accidental complexity (complexity due to the way the solution is designed). The idea is to reduce accidental complexity as much as possible while making the essential complexity more managegable.

The paper also discusses that you can separate a program into

1. state (data that changes over time)

2. behavior (computational logic)

In order to reduce the accidental complexity, you can use functional programming (which is purely behavior, devoid of complexity due to state mutation) for the behavior part. For the state part, you can use a relational database to manage it in a more systematic manner. They call it functional-relational approach to software design.

If you do game development, you likely heard of ECS (entity-component-system) and data oriented programming which in a way promotes this approach to software design.

Re: Ask HN: How to rediscover the joy of programming?

#318
post #282

My current problem is that I write Javascript/TypeScript at work and have come to absolutely loathe every aspect of it because I've been working with much, much better languages at home for hobby projects (Elm, PureScript, stuff like that). While I have not really lost the love for programming, I've discovered the sheer amount of work one has to do in JS/TS for the smallest payoff. Sure, the languages I'm using for f…

Ha, similar. Try encouraging your team to adopt the likes of fp-ts and newtype-ts piecemeal, it's certainly not as good as the likes of PureScript but it can at least enable you to utilise composition, Option et al, etc.

Re: Ask HN: How to rediscover the joy of programming?

#320
post #316
post #243

Earlier quoted context omitted.

Lack of standard library doesn't account for web framework churn, though. Momentarily seemed like we had coalesced around Vue and React, and here comes Svelte, among others. It's incessant.

React was released 7 years ago in may and is definitely the most dominant framework and going very strong, and will be a good career investment for years to come. I think framing that "momentarily" for yourself is making yourself very unhappy - life changes constantly, as we see with this pandemic, and we need to have a little bit or willingness to accept change every five years or so, or perhaps we need to choose a…

React is its own ecosystem at this point. I can't even keep up with React state management libraries...
Post reply on HN