HNHacker News
TopNewBestAskShowJobs

hurril

547 karma · joined December 11, 2020

# Functional toy language https://github.com/pandemonium/lukas-rs
submissionscomments
hurril··on Why I Hate Frameworks (2019)
They aren't part of a technical argument.

The root parent of this discussion pertains to the value of frameworks. In this context, I am making the claim that Java and Java programmers need frameworks and that hating them is basically misdirected. You are, in effect, blaming the plastic hammer for not working without first turning it into a metallic one.

You can agree with this or not but please direct your answers to the claim I am making and please be honest.

I'm frankly shocked that this is a controversial take and I can honestly say that this has made me understand why Java with Spring Boot as well as JavaScript is so prevalent still. You like it the way it is and probably always will!

I mean: judging by how most of you respond, you've probably also missed to point though so I can never be quite sure.

hurril··on Why I Hate Frameworks (2019)
Which happens to be my point.
hurril··on Why I Hate Frameworks (2019)
You forgot "To be generally useful". And as I've stated many times now in this thread: the proof lies in what job ads mention. They _never_ look for Java programmers without Spring Boot.

> If I can write useful software in a language without using frameworks, then said usage is not a non-negotiable requirement.

You are not Java. I can write useful software in Brainf*ck. This does not make BF generally useful. Enough, now.

hurril··on Why I Hate Frameworks (2019)
The problem with boilerplate was never in creating it fast enough. It's with maintaining it. Does the AI help you with that too?
hurril··on Why I Hate Frameworks (2019)
You are missing the point completely here. I am not arguing for or against frameworks. I'm telling you that Java and Java programmers need them, and because of that you are going to have swathes of programmers fighting over which ones to use, the correct way to use them and also over the need to switch from the Apples framework to the Oranges framework because it is obv better.

I want better languages instead of a mediocre one papered over with an emulation layer like Spring Boot.

Why do you think there are so many translation layer efforts for JavaScript? Same reason. Java and JavaScript in and of themselves are weak.

I am going to go out on a limb and claim that all of you that downvote me have completely missed this point.

> The fact that people are able, willing, and actually do build cool, valueable and inventive things while trying to minimize the amount of noise between them and their tech-stack, is not something that disappoints me. In fact, this is why I largely transitioned to Go as one of my primary languages. And I get the same feedback from many people in many other companies and roles.

This is not what people are doing. This is what I (and perhaps you!) want. People are _adding_ things on top of the core language. They need and want more stuff. Not less.

hurril··on Why I Hate Frameworks (2019)
Not really. "I did Java in a serious project without frameworks once" is not a counter to: Java needs frameworks to be generally useful.

I am not trying to convince anyone, I'm stating the case that Java and Java programmers need frameworks in a way that more modern programmming languages don't. And that this is why it looks the way it does. My theory thus explains reality.

Do you have a counter to my claim? As in: do you have many examples of companies now that use Java without having gone with Spring Boot (or basically invented it themselves?)

I did Java for a mindnumbing decade, for god's sake. Then I stayed around the JVM for another decade writing in Scala. But! This is not an argument from authority here, I'm merely trying to add some context here lest you think that I am a .NET warrior or simply hate Java from a C++ distance. I am not.

hurril··on Why I Hate Frameworks (2019)
No, dear Internet adversary. There is a reason why the framework landscape looks the way it does. You can see proof of my point in every job ad there is and frankly, I'm quite disappointed really. Cool companies and interesting ideas get solved by using 19 century tech, so the technical state of the art remains where it has been since forever.

This makes me bitter. I constructed my own DI frameworks in the early 2000:s when I did Java. Trying to find interesting places to work now means that I get to work in new codebases that look exactly the same as they did 15-20 years ago. Why is that? Have we learned nothing?

I honestly don't even understand your position here. Are you trying to claim that Java is as useful for a normal team of software developers without using Spring Boot?

My first 10 years of Scala, I never even once thought about looking for a lightweight framework for managing shared state, DI and/or configuration management. I'll happily concede that working with ZIO is a dream, however. But it is truthfully not needed the way Spring Boot really is for Java to be modern and useful.

Same goes for JavaScript in the browser.

It isn't really about the lack of powerful tools at your fingertips, it's that you cannot make them in pure Java. You have to "cheat" but resorting to an emulation layer so that you can apply transforms and abstract lifecycle concept. We called them cross cutting concerns in 2003-2004. As in: how do you correctly (read: typesafely) construct a unit of work, correctly configured, with the correct dependencies and correctly interacting with caches and databases for all the 4000 features?

In Haskell, you'll easily solve it with a few functions, the usual combinators and the reader monad. In Java, this is Spring Boot quite literally. You need this stack to traverse ground.

Without such a type system and the ability to abstract over functions, you either invent it yourself with tests instead of types and adapters/bytecode weaving/code generation instead of functions and monads or you use a framework. Both work and probably work just as well.

Without the framework, you have to make it. And there is a basically 100% proof of this in Job Ads. This is what I am critical of.

The fact that you want to win over this because your unmentioned company has several frontends that you claim don't use or invent any frameworks is just weak sauce.

hurril··on Why I Hate Frameworks (2019)
You are answering a different question. Opting for Java is smart, albeit incredibly boring. Doing so is basically choosing to go with Spring Boot, at the same time.

You are going to do that because the Java programmers need it, Java needs it and if you don't, as another writer here said: you'll be writing all the frameworks yourself and at considerable cost.

So hating frameworks and picking Java is a dubious position.

hurril··on Why I Hate Frameworks (2019)
Bah, cheap and weak. But sure, the hill is yours, strong warrior.
hurril··on Why I Hate Frameworks (2019)
Find me one company that uses either of the languages without a framework and you make your point. I'll wait.
hurril··on Why I Hate Frameworks (2019)
So cool of you!
hurril··on Why I Hate Frameworks (2019)
Wait - writing Java without a framework totally works if you begin by writing frameworks for everything it lacks?

You are making my point, friend.

hurril··on Why I Hate Frameworks (2019)
Definitely! But not with Java and JavaScript.
hurril··on Why I Hate Frameworks (2019)
The difference in both of those cases are that you can create a micro framework yourself for the few abstractions that you need. (Not saying that you should!)

Doing this with Java entails reflection and various other runtime extending toolery, which requires a huge panel of tests because of a lack of ability to type the more difficult aspects. This is certainly not impossible and I have done this many times, but it's not practical and it is not cheap.

hurril··on Why I Hate Frameworks (2019)
If you were a CTO, would you have your team write the store backend in pure Java?

Being able to solve AoC in it doesn't really matter.

hurril··on Why I Hate Frameworks (2019)
I don't think that cuts to the core of the problem. Java (and JavaScript) are too weak. The way you make them productive is by emulating strength through a framework; more than one way exists to Rome, however, so there will be differences in how The One True Framework must be.
hurril··on Why I Hate Frameworks (2019)
You cannot build serious stuff in Java effectively without a framework. Choosing Java is choosing frameworks. The reasons are many, such as: Java programmers know Duplo, presented with Lego they are simply unable; Java is Duplo, presented with Lego problems it is simply unable; even a really competent programmer is simply unable when presented with Lego problems and Java because the one way to make it really productive is through the use of a good framework.

Also: All of this is for reasons I am unable to go in to.

hurril··on What is the index of an empty string in an empty string?
It's 0 and this fact is sometimes referred to as epsilon when we talk about parsing.
hurril··on Austin sees mass exodus of ex-Silicon Valley tech companies, here's why
I know what he said, the text is still there.

I don't care what values people have, and the fact that you seem to have gone ahead and attached core values to me (opposite to those of the parent) is also interesting. It's intolerant in the very same way.

To me, people get to decide what they believe in and select core values all they want. It isn't any of my business. I can live in TX or i NYC. Doesn't matter. You do you, but maybe we can be friends (anyway?)

This incessant projecting of bad character, lesser value, the wrong core values, etc, that a lot of people seem to be doing, is not good. It's the core of establishing differences between people; it is the mechanism core to racism and other xenophobias.

When you say: I'm good and not like those other people over there (where I can't even live!) - that is the same sentiment as in saying: We don't take kindly to stranger over here.

hurril··on Austin sees mass exodus of ex-Silicon Valley tech companies, here's why
It's just very intolerant in the actual sense of the word.
hurril··on Austin sees mass exodus of ex-Silicon Valley tech companies, here's why
Says the person who cannot live in a state bigger and more populous than many countries because he thinks they have the wrong core values. That speaks volumes about _you_. You are young and you have an ego problem, not a _other people's core values problem._

Yes, they can probably see parts of what kind of a person I am. Just like we can all see what kind of a person you are. A person that knows that there's something wrong with everybody else.

hurril··on Enums in Rust – and why they feel better
I agree with you! I dislike the name enum and really like how F# does it. In F#, everything is type and what kind of type you create comes down to the type construction literal you use.

` (* enum ) type 'a Option = Some of 'a | None `

( struct - well: record. *) type Company = { Name : string Age : int }

Fudge. No idea how to format that in HN.

hurril··on Enums in Rust – and why they feel better
Except Haskell, Scala and F#. They are neither academic nor rabbitholes. You're simply not familiar with them - perhaps a trip outside of your safe space could be something? :)

Car and crd is lisp and from the 60:ies, basically. You can liken them to assembly instructions because that's kinda sorta why they're named like that.

I still stand by what I said about them.

If you write Rust for 1-2 years, I bet you you'll come to look at programming in those languages completely differently. I have a very high carry over, going in to Rust from those languages.

hurril··on Enums in Rust – and why they feel better
While I agree with you, I can understand going with enum so that they don't scare away the C and C++ crowd with being too fartsy with theoretic stuff.
hurril··on Enums in Rust – and why they feel better
> A commonly said piece of feedback from someone who's learning Rust as a second language tends to be that enums are far better supported in Rust than any other language.

This is nonsense. I doubt that this is common feedback and it is just not correct that it is far better supported in Rust than in any other language. Why would anyone say that? Rust pretty much has support for ADTs, sum types and product types. Just like any modern (functional) language has.

Haskell, Scala, F#, OCaml, etc.

(And I love rust, write it in my day-to-day as well as on my spare time.)

hurril··on Victor Mono Typeface
This is one of my favourite fonts. Used to switch between it and Pragmata Pro before I got myself Berkeley Mono.
hurril··on De-crufted Windows 11 coming to Europe soon
macOS does not have a task bar and that paragraph specifically says that the flashing items did not even show in a news app. The criticism of Apple here says that they have a news app and that it shows news.

It is not the same thing and it won't be the same thing no matter how many times you say it. It simply isn't!

hurril··on De-crufted Windows 11 coming to Europe soon
Then we don't understand the phrase "the same thing" the same way.

An Apple box comes with Apple software and services. It does not come with third party apps preinstalled and it does not show me ads. The one exception that I can think of is in the App Store and in their TV offer, but this is not what you are talking about.

I disagree with a thousand things that Apple does but this comparison is disingenuous.

hurril··on De-crufted Windows 11 coming to Europe soon
Do you want me to understand a news app or widget as the same thing as unwarranted ads in the start menu?
hurril··on De-crufted Windows 11 coming to Europe soon
Yes, it does come with Apple Music (and whatever Apple News it - perhaps I've missed it?) And they do nag about using Apple Music a lot.

I dislike that they do this and Apple can be criticised for a million different things. 1) this is not it; 2) this is not what Microsoft is doing.

It has filled the Dock with (all) Apple apps the last 15+ years.

I don't quite understand why you're comparing a desktop OS to the phone OS, but I guess that can make some sense?

← PreviousPage 4 of 10Next →