News for hackers. Stuff that matters.

Profpatsch

There are no global state mutations in `pkgs`. All immutable parts are in `impure.nix`, which already has a complete `pkgs`.

Maybe you are confusing state mutations with fixed points, which are used extensively (thankfully).

Even though it’s very much out of context for this thread, it’s a little pearl that brought me again a little bit closer to understanding. Thanks!
Most GNOME apps started today are done in Vala afaik. It’s just starting to get traction. Maybe not at fast as $HipsterLang, but steadily.
Re:NixOS Linux on Sunday June 14, 2015 @09:59AM (#9714909)
I have been writing a guide on how to set up a desktop system with NixOS, but I’m not quite finished yet.

I wonder how high the interest in something like that would be? I can throw up an unfinished beta version of it if people are interested.

Re:Rust for Python Programmers on Wednesday May 27, 2015 @12:58PM (#9612723)
Dude, give the code some space. It can’t breathe cramped like this.
Re:The Nit Programming Language on Thursday January 08, 2015 @05:21PM (#8859421)
Exactly. It’s what I commented about super after 8.

You spread your (probably stateful, imperative) logic over several files and classes.

Re:The Nit Programming Language on Thursday January 08, 2015 @05:19PM (#8859398)
> It's feature usage - or rather misusing it - that leads to "bad code".

I still don’t agree with this. There are features that invite misusing them, or pose a greater risk of being misused. For example, with operator overloading developers often leave out some cases, causing possible dangerous behaviour afterwards. Or goto, which has a very big risk of being misused (compare the possible useful cases against the many, many cases where it’s not).

> Also, thanks for assuming so much about my mentality from a simple comment

Indeed, that’s what happens when such a comment is first impression.

Re:The Nit Programming Language on Thursday January 08, 2015 @12:44PM (#8857624)
> is that there is no such thing as "bad feature" or "feature that results in bad design". No, even straight "goto" is not such a feature.

Yet, there are features that lead (with a high probability) to bad program code (see goto) Of course it’s always basically the same once a language is turing-complete, so we have to rate languages by how they do certain things.

There is the widely-known term of “code smell” or even “antipattern“, I’m pretty certain such a thing exists for language design, too. I did list those features I found lead to “design smell”.

By the way, comparing penises by writing out numbers w/o any reference is silly at most.

Re:The Nit Programming Language on Thursday January 08, 2015 @11:42AM (#8857176)
Don’t you just love some good ol’ Nitpicking …
Re:The Nit Programming Language on Thursday January 08, 2015 @11:31AM (#8857116)
lel, of course everyone is going to discuss about the smallest critique I stated. Bikeshedding at its best.
Re:The Nit Programming Language on Thursday January 08, 2015 @10:12AM (#8856678)
Here are my thoughts after quickly glancing over the „features“:

1. No formatting rules and verbose „end“

I thought that by now it was universally accepted that having clear rules is a good idea, see Python and golang)

2. OO with inheritance

3. multiple at that

4. Dynamic classes/objects

5. Methods inside the classes

All of these make reasoning about effects very hard/impossible; Interfaces in golang, Multimethods in Clojure, Typeclasses in Haskell, CLOS in CL all provide a better solution to that.

6. Imperative

7. No functional elements (no functions, only methods)

Both mean inherently stateful, which in turn complicates reasoning

8. redef & super

It’s dangerous to have behaviour of single methods spread all over your codebase.

9. nullable

Looks like an interesting idea to eliminate the class of NPE runtime errors, yet it’s a special language (and syntax!) construct. It therefore does not arise out of the type system, but is explicitely built into the type system, so it doesn’t scale. See Haskell’s Maybe type on how to eleminate NPE’s with a small, trivial type that is no more special than any other.

Take it or leave it, these are the things I learned in my study of programming languages. I might be wrong, I might be right, but these are the things that came up as bad design most often in different languages. /me out

Re:An open source engine clone of Age of Empires II on Monday October 27, 2014 @05:20AM (#8514520)
ikr? We should start a lobby. :)

Though I would be worried if I heard yandere in any context other than manga/anime.

Re:An open source engine clone of Age of Empires II on Sunday October 26, 2014 @03:15PM (#8511958)
It’s tsundere-speak. Only they are young white males.
Re:Introducing Swift on Monday June 02, 2014 @04:31PM (#7836145)
Hijacking another programming language name for your own cheap JS-syntax clone? Nice move, jerks!
Re:In about 2 hours it’s 1400000000 unix time on Tuesday May 13, 2014 @11:44AM (#7738712)
Unix time is representing seconds, and seconds are a human measurement which use decimal notation.
Re:In about 2 hours it’s 1400000000 unix time on Tuesday May 13, 2014 @11:14AM (#7738507)
6000 seconds. That’s still about 2 hours. :)
Re:Light Table Plugin Tutorial - part 1 on Tuesday January 14, 2014 @01:22PM (#7058691)
That was quite amazing. I’m thrilled to check out Light Table now. But I’m at a loss, since I just got Clojure running in Emacs pretty well, complete with Vim keybindings.

Yet, I can’t get the Cljs connection working in an acceptable manner, so if LT makes that trivial I might just switch instantly. Hrmpf, why can’t there be an easy solution …

Re:Hordes Of Novices on Wednesday November 20, 2013 @10:42AM (#6768628)
Holy crap.

Or write Sony’s user management. Or Adobe’s. Or …

Re:Hordes Of Novices on Wednesday November 20, 2013 @10:41AM (#6768624)
https://en.wikipedia.org/wiki/Robert_Cecil_Martin

He’s the head of the agile movement.

Re:Stop tinkering with your toolbox on Wednesday April 11, 2012 @05:02PM (#3829618)
This is really helpful. I like this guy's tips.