Follow Slashdot stories on Twitter


Forgot your password?
DEAL: For $25 - Add A Second Phone Number To Your Smartphone for life! Use promo code SLASHDOT25. Also, Slashdot's Facebook page has a chat bot now. Message it for stories and more. Check out the new SourceForge HTML5 Internet speed test! ×

Comment Bad data from poor implementation (Score 2) 163

With that said, if they do this pilot correctly it will yield very interesting data.

I very much doubt it will because it is implemented in a way which directly undermines the arguments for universal basic income which is normally taken to mean that everyone gets a fixed income regardless of circumstances. Instead this project reduces that income at the rate of $1 for every $2 earned. Unlike the real deal this provides a reasonably strong motivation NOT to take low paying jobs since you only get a benefit of half the wage you earn. It also means that you now have to start means testing people to see how much they earn which requires bureaucracy and officials and incurs expense.

The whole point of basic income is to cut the administration expense because everyone gets it regardless while also preventing the disincentive to work of typical unemployment schemes by clawing back money when people get even a low paying job. The Ontario scheme fails to achieve either aim and so seems unlikely to work or provide any data about whether such type of schemes could work.

Comment Writing, technical and otherwise (Score 1) 380

Wow, you wrote that entire rant over a single letter. That's pathetic.

Language is an art, like painting. Technical language is an art where miscommunication leads to real world problems, and where evidence of lack of expertise leads to well justified lack of confidence up front.

With language, as with painting, you can paint like a master, or you can finger-paint like an addled child.

Which do you think will carry you further in life and in your career? Which do you think will result in more actual pathos?

Comment structs and fundamental OO (Score 2) 340

Just having higher-order functions doesn't make a language a functional language any more than having structs makes C an object-oriented language.

Structs do, however, make the critical aspects of an object oriented approach practical in c. They can carry data, function pointers, etc., and they can be passed around.

I've been writing my c code like that since the 1980's. There are significant benefits.

Comment Hard stuff is, in fact, hard (Score 5, Interesting) 340

I would add to this that reducing the complexity by turning everything into separate functions tends to also increase what I call "opacity by non-locality."

Not only are some things hard, some things benefit from having the logic right there in front of your face; not in a header, not in some function elsewhere, not in a library.

Benefits in both comprehension, and so ease of construction, but also in execution time and smaller executables depending on just how smart the language is in constructing its own executables.

Comment function dictionaries in Python (Score 1) 340

So, for example, by storing functions as values in a dict you can build complex structures of execution without using any conditional codes .

This is the core mechanism of my text markup language. Once the specific built-in tokens are parsed out, they are immediately accessed via the language's function dictionary. This approach is quick, ultimately low-complexity, trivially extensible, and highly maintainable.

Comment Fluid type manipulation with unions (Score 2) 340

Would you consider unions in c a "means to circumvent the type system" as compared to a language with strong up-front typing?

Unions are certainly a very powerful, useful, and concise tool for manipulating data across type boundaries. If you don't have them, in trying to accomplish similar tasks as those unions make easy, in many languages you're going to be a lot more verbose, and likely a lot less efficient, than if you do.

I am assuming competence. Strong typing is a safety net. The need for such a thing varies with one's skill set. The fewer the participants, the more likely it is that the skill sets can be arranged to be similar. With larger teams, the need for safety nets almost always increases.

Comment Poorly understood? (Score 3, Interesting) 340

If you're using poor coders to maintain very old code then perhaps the choice of programming style is not your biggest problem.

You may have misunderstood the previous poster's use of "poor coder."

I read it as "unfortunate coder", not "incompetent coder."

I could certainly be wrong. Perhaps clarification will be forthcoming.

Comment Re:I couldn't get past "how do you write a game"? (Score 3, Insightful) 340

As a professional videogame programmer, I can assure you that I haven't heard functional programming discussed much at work or among other peers in the industry. Videogames are giant, data-intense state machines, with lots and lots of state to track and manage. My feeling is that it's really not a great fit for functional programming. Traditional object-oriented programming is *heavily* used (C++ is the defacto industry standard language), because that's a reasonable and proven way to encapsulate complex, independently-operating entities into well-behaved packages of data + code.

It's the same reason that the industry doesn't extensively use unit testing for engines and game code (not broadly at least), which may surprise some programmers in other fields. The reason is simple: many game engine tasks can't be boiled down into simple algorithmic data transformations that can be checked and verified by a simple function. For instance, how would one write a unit test to ensure audio is playing correctly, or a graphic shader is working as intended, or a physics engine "looks" correct in realtime interactions? It's not really practical. Thus, videogames tend to rely on integration tests using QA team members to spot anomalies.

In short, not every programming paradigm can be effectively applied to every problem. That's not to say you *couldn't* write a game purely in a functional language, of course. I just don't think you'd be working to FP strengths.

Comment Re:What's changed? (Score 5, Interesting) 268

Probably true, but even as someone who is likely your political polar opposite, I've always found your arguments to be consistent and well thought-out, even if I don't necessarily agree with all your positions or conclusions. For some reason, I think it's easier to remember a single negative moderation or hateful comment rather than a dozen encouraging responses or positive mods.

Unfortunately, many people use the relative anonymity as an excuse for venting their own frustration, intentionally lashing out at others with caustic remarks or outright trolling. I've found that viewing such people with pity rather than frustration helps alleviate the frustration of dealing with rude people. What sort of person feels the need to lash out at others online? It's sort of pitiable, and I tend to think "how crappy is your life that online trolling is how you choose to interact with others?"

I'm not sure there's any solution, other than ignoring the trolls and trying to set a good example yourself.

Comment Re:It has its uses (Score 5, Interesting) 340

Few "in the OOP world" (whatever that means) promotes inheritance as the end-all-be-all these days. I think that went out of style fifteen or twenty years ago. The notion of eschewing inheritance whenever possible has its own Wikipedia entry, and was described in detail in the famous "Design Patterns" gang of four book.

That being said, there's a time when reality can intrude on "theoretically" clean designs or programming paradigms. Functional programming and unit testing are things you don't see widely used in the videogame development world, at least that I've seen. Not all paradigms and patterns apply to all types of problems. Ultimately, I think that's the most valuable thing I've learned over time. Use the tools and techniques most appropriate to the problem at hand you're trying to solve. Religious wars over programming techniques and methodologies are for pedantic fools.

Comment Re:Pascal, “not clean”??? (Score 1) 608

I agree with you about the cleanliness of Pascal. But just FYI the current MacOS (OSX) is mostly written in C, assembly, and Objective-C, since its based off BSD. You're probably thinking of the original Mac OS, but from what I understand, it's not *quite* correct that it was Pascal either. Instead, they hand-translated some existing Pascal routines from the Apple Lisa into assembly to save on memory. So, it sounds like it was the Apple Lisa that largely used Pascal.

Also, it's wildly incorrect to say there were "no exploits". All modern operating systems have had LOTS of exploits over the years, because very early on, security wasn't even considered. Probably not quite as many as Windows, but certainly not zero.

Slashdot Top Deals

Faith may be defined briefly as an illogical belief in the occurence of the improbable. - H. L. Mencken