Live data from Hacker News

Ask HN: I just want to have fun programming again

news.ycombinator.com

151–160 of 219 posts

Re: Ask HN: I just want to have fun programming again

#151
post #39

C#/.NET is cross platform. I find it more fun than doing things like php or node. But I also don’t follow the whole “everything needs an interface” crap, or the insane level of abstractions people seem to implement. I’m sorry learning rust tho. Like it a lot.

I'm using C#/.NET7 for a side project. I use .NET6 at work. For me, the language itself has no bearing on fun. Having something that "just works" in most areas without having to antagonize over 3rd party dependencies allows me to have fun. I'm sure if I was as familiar with Java or something I'd probably use it for my fun projects instead. If you want the language itself to be an amusement, then I don't think C# is f…

C# can go in both directions because if you don't go full of shenanigans and simply write what you need it can be reasonably elegant. But to your point it won't necessarily be "fun", however if the fun is more in the problem it can be a great answer.

F# I'm finding to be a language I can have some fun with because some of the syntax just speaks to me (being able to use pipe operators aka |> to chain work so that what you work on is at the front and then it flows into each step without explicitly writing out intermediate variables or writing code inside out feels GOOD to me). It certainly isn't for everyone though.

At some point I want to play with Avalonia because I need to get back to doing non-web UI but I never have the right idea other than some of my game stuff and that's getting done in Godot or Unity.

Re: Ask HN: I just want to have fun programming again

#153

Left my job late last year with the intention of striking out on my own. Instead I realized quickly that what drove me to quit had been the fact that the joy of coding had left me. And so for the last two months I have been working towards regaining it. And at this point I realize I have gained it back. The only projects I have been working on are small libraries and apps whose ideas had written down over the years b…

I think of doing something like this, but I'm afraid my problem is that I'm self-directed and my motivation comes from within. Working for someone makes it again a job and making me fix problems someone else have created within limits they envision.

Is it different for you?

Re: Ask HN: I just want to have fun programming again

#154
From the way you write, I get the impression that the project idea you have in mind isn't fun for you to implement.

If dealing with "front-end baggage" doesn't sound like fun to you, don't do a project that needs (much) front-end. Maybe you can build a bot (discord maybe?) instead? Or try some other interaction paradigm?

Or maybe abandon your project idea, and ask yourself what kind of project would be fun to implement, not fun to have finished implementing.

> I feel like there aren't really any good options in software development any more. It's always one big compromise with lots of possible decision fatigue. Every direction has drawbacks.

The beauty of a hobby project is that you can decide what's important for you. You can decide to screw portability, or accessibility, or security (as long as it's just on your device/home network), or whatever else feels like a burden to you.

Re: Ask HN: I just want to have fun programming again

#155
post #6

> while I very much like Swift and working in the UIKit world, it's not so portable to platforms that many use. Your title says you just want to have fun programming but your post is full of other requirements. You need to decide if having fun really is what you’re after—in which case it seems you’ve found your answer—or if it’s secondary to some other metric such as customer reach. There is always a compromise. No s…

Yeah exactly, even though I'm more of a Linux user than an Apple user, one thing I do admire is that there a lot of apps with UI polish because they JUST build for one platform.

They just focus on making it exist, without premature generality.

Re: Ask HN: I just want to have fun programming again

#156
My go to language for the last couple of years has been Dart, and I stuck with it because it's the first language I really enjoy.

Dart's "Rails" is Flutter, it lets you write apps for mobile on iOS, Android, web, desktop on Windows, Mac and Linux, and it's used on large enterprise projects, startups, and solopreneurs / pet projects.

Dart is a very consistent language (compared to others, at least), super easy to learn, null safety, great type system. You can write web apps with it even without Flutter (it can also compile to js), churn out command line tools, run your server, and write user interfaces for desktop, mobile and web apps with Flutter. It feels like it has the best parts of Java, Javascript.

It's been a fun couple of years for me and I created some fun stuff with Flutter and Dart, so if you want to try something new, consider taking a better look at them.

Re: Ask HN: I just want to have fun programming again

#158
post #8

I just discovered and it seems enticing: https://github.com/raysan5/raylib > no fancy interface, no visual helpers, no gui tools or editors... just coding in pure spartan-programmers way. Are you ready to enjoy coding?

Doesn’t it also say no debugger? You’re a brave soul, my friend :)

It's a c library. You'll have very powerful and mature debugging and tooling available to you.

Re: Ask HN: I just want to have fun programming again

#159
Well, I'm going to chime in with Java and JavaFX. Yes, its still used. Yes, its still active. Yes, its still updated.

Java is Java. A nice aspect of Java is that you can find pretty much anything in Java. Not written in something else and integrated with Java. Written IN Java. That helps limit the long running impact of "dependency hell". Of course you'll have dependencies, but in the end you have a static distribution, and its the same code, across the platforms. I'm currently working with Apache Jena and RDF (and this has nothing to do with the semantic web). For my purposes, RDF is a hoot, and adding Jena to my project was drag and drop.

There are exceptions. JavaFX is one in itself, as it does have a platform dependent binary component. If you're lazy on tooling (I'm lazy, I hate tooling, I should say I hate fiddling with tooling), just bundle all the platforms everywhere. But you can also make platform specific builds. In the end though, you don't have any environmental dependencies. All of them are brought with you. You can static link lots of things, but in Java, its routine.

Java is evolving into a multi-paradigm language. Still dominantly OOP, but it has the low hanging fruit of others as well. All of it is imperfect, but it's pragmatic as all get out.

JavaFX is a pretty solid piece of kit. It's modern, it's STILL modern. As old as it is, its held up really well. It's different, it's not Swing by any measure. My hurdles picking it up was taking preconceived notions learned from older frameworks and trying to square peg round hole them into FX. FX is opinionated enough to make that kind of effort frustrating.

But it comes with a scene graph. It comes with CSS. It comes with animation. It comes with 3D. It even has boolean 2D geometry operations. It comes with a bevy of layout containers. It has GUI screen builder. It has FXML, which is an XML based format for specifying scene graphs. With a bit of boiler plate, you can actually do entire screens and logic in an FXML file with embedded JavaScript, if you're so inclined. Perhaps not the greatest idea, but for certain applications the idea of being able to have an end user add a screen to your application can be very interesting.

I really like the Property and Binding mechanic. It's one of those things that's compelling and can lead to abuse and trouble. But that's OK. Just dial it back and it sings. It can also be used for simple rules, or as a simple constraint system.

Make no mistake, there will be battles. But for me, someone who hates Fiddly. Who tolerates tooling. Having everything underneath the one overarching canopy of the JDK is useful. But, it's still Java. Java can be wordy, to be sure. This doesn't bother me so much. Even my Common Lisp is wordy. CLOS isn't a poster child of terse coding. You still have your setters/getters (that can be sort of mitigated with the lombok project, but it doesn't have support for the JavaFX property idioms).

I do have one complaint about FX. The components and such are pretty locked down. It's really hard to extend them in ways they're not designed to be extended. Which means if something you're working with won't work for you, its baby out with the bathwater.

I've been playing with it all year. I have several half baked projects floating about. It's all been mostly fun for me. Desktop GUI work has a lot of minutia, which I've never been very good at. It's also a GUI, which is about presentation, and make this blue, and that 3 pts bigger and line all this up and can we have a shadow here. Most of which I hate. But that's an inner conflict unrelated to the environment. That's just GUIs and bike shedding. I've suffered this since they offered color to smart terminals.

GUIs also have a bunch of things that have nothing to do with your application per se. Global state, where do you put the logs, preferences (dare I mention Java has a cross platform preferences API built in?), perhaps capturing window layout on close, etc. I wish I could point to simple framework that supplies all that, but I can't. They exist, they're not simple, they come with a lot of baggage. That may or may not be "fun" for you.

Post reply on HN