Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
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 Features have Costs (Score 5, Insightful) 388

When I was a younger programmer, I thought, "Features are great! Always add a feature, if it could help someone!" I overestimated the value of the feature, and didn't think at all about the costs of the feature. "I mean, how long does it take to implement this? 10 minutes? A couple days? What's that matter, vs. the utility that this would provide?"

What I didn't realize at the time was that every feature basically adds an exponential cost, and has an impact on everything else going on in the codebase. Features introduce new possibilities, and new possibilities create new state combinations, and new state combinations create new bugs and new need-to-test circumstances. New features usually have a user interface impact, several new features have a dramatic user interface impact. New features need to be supported by new or future-self programmers, who have to understand and navigate around the code. If the product is ported, the feature needs to be ported as well. New features also require additional documentation, and if the product is localized the new documentation requires new localizations.

I've heard that "the skilled Go player is reluctant to make a move." I think it's similar for the application developer, and for much the same reason.

Comment Is the Content actually Deleted? (Score 5, Interesting) 88

There's something bothering me about the article and Facebook's announcement --

It talks as if photographs and content are deleted forever, but it's carefully carved out the language in a way such that they never directly say that:
* "The Instagram community has shown us that it can be fun to share things that disappear after a day, so in the main Facebook app we’re also introducing Facebook Stories, ..."
* "Your friends can view photos or videos your story for 24 hours, and stories won’t appear..."
* ...We’ve also added Direct, an option that’s designed for sharing individual photos and videos with specific friends for a limited time."
* "When you send a photo or video via Direct, your friends will be able to view it once and replay it or write a reply. Once the conversation on the photo or video ends, the content is no longer visible in Direct."

"view ... for 24 hours," "...a limited time," "...view it once..," "...no longer visible..."

OK, but nowhere does it ever actually say DELETED.

Given that there is likely going to be sexual and personally sensitive (black-mail?) content here, isn't this a big deal?

Comment Why do you believe that? (Score 5, Insightful) 456

"People desperately need a universal solution which is secure, decentralized, fault tolerant, not attached to your phone number, protects your privacy, supports video and audio chats and sending of files, works behind NATs and other firewalls and has the ability to send offline messages."

I don't see the sense in that. There's so much evidence to the contrary.

May as well say people desperately need a universal language. May I interest you in Esperanto?

Comment Fundamental Missing Features (Score 3, Insightful) 449

Forget compiled languages. That's not fun.

We want command based (imperative) languages that can be run in a REPL for fun. BASIC basically fits this.

Take Python as a contemporary example. Now look at how many basic features of interactivity are NOT enabled in an easy way in Python by default: LOCATE, INKEY, SOUND, PLAY, SCREEN, PSET, LINE, CIRCLE, PGET.

Just these. You can't do ANY of these things in Python with a basic install. "Yes," if you have tkinter in your install, you kind of can. But it's hairy and complex. It's not anywhere near as simple or accessible as BASIC. Pygmy makes some of these things possible, but those are further steps of installation away, and the interactivity feels further away.

Line numbers are incredibly simple (read: understandable) as a flow control model. "Why Johnny Can't Code" outlined the problem with mandatory complex abstract control structures.

I think there are basic fundamental missing pieces in the contemporary programming environment, and that the industry is worse for it.

Comment Movie Makers do NOT get money from candy. (Score 1) 341

...that by offering you new titles so early they are going to lose on all the overpriced cold drinks, and snacks they sell you at the theatre.

This is incorrect. Movie theaters make ZERO money on ticket sales for the first few weeks, then a small portion of the ticket sale, and then eventually a good portion. Pretty much ALL ticket money goes to the makers of the movie.

THE REASON why you have those overpriced drinks and such, is because it's the only source of income for the movie theater itself.

Comment Re:Give up (Score 1) 435

I'm 39, I've been programming since I was 6. I relate to this completely.

I observe, as Alan Kay has observed, that the industry is fad-driven and youth-focused. I remember when Node.js was exploding out, and asking myself, "What's the big deal here?" People were getting insanely excited about... ...call-backs. As if it were this bold new paradigm in programming.

I think what happens is that young people get into programming, discover some idea, and then hype the fuck out of it. Other new programmers hear this idea, their brain explodes, and they start tapping the shoulders of all the other young programmers. Next thing you know, they all want to learn this programming language and it's the best thing in 4ever.

I have a very hard time getting excited about most "new" technologies; I have a very hard time getting excited about most "new" **ideas.** Reason being: I see very little that is new in them, a lot that is very old, and I see terrible implementations behind them most of the time.

I often find myself asking:
* "Why not just use TCP sockets, cron, and a couple hundred LOC, rather than importing this entire massive technology stack?"
* "I hate to be a jerk, but do you know it should only require about 12 bytes of data to store each entry here?"
* "Have you thought about using shared memory here?"

I see far more work going into sorting out and arguing for technology stack X vs. Y, rather than in what the problem actually is, and what would be the simplest and most direct way of solving it. Then our energy is lost in upgrade hell, attack vectors, and work-arounds for simple things that are very basic but didn't happen to be included in the stack.

I have seen more code written in work-arounds and patches and side-solutions and configuration systems, then it would take to simply just write our own solution -- with total control, all versatility required, easier flow, and far fewer places for bugs and attack vectors to arise.

So, I don't care about New Language X, or New Technology Y. I can learn the pieces of it as needed, but I just can't work up the exuberance for it.

Comment Reverse Calculate Average Lifetime of Civilization (Score 1) 267

I'd be interested in seeing a paper that estimates the maximum lifetime of a technological civilization, on the basis that : (A) the estimates given are right about the number of stars, how many habitable planets are in the goldilocks zone, etc.,., (B) we are not atypical, and then (C) that we have not encountered signals from any radio emitting civilizations.

We might find that there would be so many technological civilizations, that technological civilizations should only exist for a few dozen years. Or we may find that they are so rare, that it's extremely uncommon that they overlap, and they may well last for several millennium.

Comment A More Radical Position (Score 0) 197

I have developed, in 30 years of programming, to a much more radical position. Technical debt and mounting complexity are major problems, and I want to see a splinter movement within programming that defies the contemporary orthodoxy on how to solve these problems.

Object Oriented Programming is not a solution.

Refactoring is a failure as a solution. INSTEAD: We need to say "NO," from the get-go, to unnecessary technologies. Yes, refactoring is needed, but we've been talking about refactoring for decades now, and we still have so many problems. We need to say "NO" to new technologies, wholesale; To be much more skeptical and dubious of technologies. Don't import a whole system, when you're only really using only 1% of the technology in it. I see so many technologies in use in workplaces, where only 1% of the functionality is needed. (I'm looking at you, Celery.) These massive systems have security flaws, bugs, and inflexibilities, that require custom patching and regular necessary upgrading and updating. They are built on top of other massive systems that have security flaws, bugs, and also require patching and updating. Yet because of "We don't want to implement something that someone else has already implemented better, and actively maintains for us," I see decisions made to get the huge big massive honking thing that ** isn't actually needed. **

When you have 10,000s of lines of glue code, to glue your systems together, and you're actively maintaining them against one another, ... and the alternative was to write a 500 line program that would do EXACTLY what you want, and is easy to modify and understand, ... ... something has gone horribly, horribly wrong.

When you're sending massive REST calls in series, with HTTP headers and payloads and everythings, ... ...when a single maintained TCP stream would do just fine, sending 4-byte packets back and forth, ... ... something has gone horribly, horribly wrong.

I said above that Object Oriented programming is not the solution. I maintain that. I think we need to seriously re-evaluate what the heck we're doing. I propose that we look at the notations we are using in writing programs. Forth has a radically different notation. APL has a radically different notation. There is great expressive power in these systems. They are compact and powerful. I have come to see that smallness is a great virtue -- not baroqueness.

A great **design** can make a dramatically smaller technology footprint. We're so focused on agile methods, that we don't see that a design can have a dramatic minimizing power. It's not about waterfall. Designs can be iterated after all. If the design has a small footprint, modification is quick and easy. The entire program can be rewritten in a reasonable time, if the design is little.

I am not writing this to convince anybody. Rather, I am writing this so that fellow programmers who resonate with what I'm saying are encouraged. These ideas are very much in the minority, and are drowned out by the mainstream orthodoxy of programming. But I believe that serious programmers who have been looking at what is going on can recognize what I'm saying here. I would like to see more expression of challenge to the orthodoxy here.

My Pointers for more information, for the interested:
* http://suckless.org/philosophy
* deep study of Chuck Moore's ideas on programming
* http://www.colorforth.com/1per...
* Alan Kay's ideas on programming
* the design of the TempleOS, which is extraordinary and powerful while minimal
* "Software Survivalism" and "Neo-Retro Computing" (Sam Falvo)

Slashdot Top Deals

"You stay here, Audrey -- this is between me and the vegetable!" -- Seymour, from _Little Shop Of Horrors_

Working...