Become a fan of Slashdot on Facebook


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 Re:Holy Blinking Cursor, Batman! (Score 1) 235

I didn't know what it was until I looked it up in the article. So basically you want me to remember that some guy came up with a name for using inheritance and if I don't remember it I'm a bad programmer?

Just as an aside, it's some gal. Barbara Liskov, Turing award winner. While I don't disagree such questions aren't the best in interviews, a bit of history also doesn't hurt. Also, in some circles, the SOLID acronym is gaining traction, and Liskov substitution principle is the L.

Comment Worse is Better, well mostly... (Score 1) 300

Many programming people are aware of Richard Gabriel's essays on why C and related languages became the dominant programming paradigm ( In essence, sometimes those ugly compromises are just what people really want (or even need).

Many have argued that JavaScript is a excellent example of this phenomenon, but there's one big difference. Everybody is trying to replace JavaScript. Some are bolting on new keywords to the language, others are pushing features and some have just started using TypeScript. Here's the thing. The history of C, the "worse" language in the article, had a long history of usage (still does), and C++, for better and worse, sought only to argument, not replace C. In the end, JavaScript is not worse, it is broken.

We know that strictly typed object oriented languages do really well for UI based systems. The notion of hierarchy of control classes works. The Document Object Model even acknowledges that by suggesting it too fits that model (but really doesn't do that). If they really want to make an UI ecosystem, they will either continue to hack it together at an increasing expense, or they will get an ecosystem that does it better. Personally, I think the hacks will go on for a long time, because cross platform UI markup, programming frameworks and a new language for that all? Very difficult to do, and there is too much invested in the "Web way" to just steal what works from Microsoft, Apple, Android and so on.

And, the thick client model is making inroads and maybe that will continue. Mobile apps are a thing, maybe desktop apps will gain traction as people realize you can still gain similar levels of control and data collection with those as web pages (sad, but that's how we pay for things now).

In the end, language design is very hard. It's actually not hard to hack up a bad version of Scheme or Lisp (that's what JavaScript is). It is very hard to fix all the problems if your language is a success. A proper set of fundamental types matter. Lexical scoping matters. Proper typing and a effective type model matters. And that's not even talking about the core frameworks that a good language needs, because that's a whole new set of challenges. I just hope that if there is a JavaScript replacement, that they follow in the fine programming language tradition of just stealing what works and carefully replacing what doesn't. C++ stole from C, Java stole from C++, C# stole from Java (and Delphi). F# stole from Haskell, Haskell stole from OCaml which stole from ML and everybody steals from Scheme and Common LISP now. Just do it and don't be too clever about it.

Comment Re:Interviews need training, too (Score 3, Informative) 1001

I posted a similar comment to this effect. Also a PhD holder, and if I answer a question directly and without pause, it means I really know a good answer. Otherwise, I will ask some questions and explore like everybody else.

Seriously, I've had people tell me recursion is terrible and knew nothing about tail call optimization, or if they heard of that, they don't understand exactly what it means. Never mind I took advanced coursework on programming language semantics where we had to formally define it. Now, if you asked me for a formal definition, I would look that up, because it's been a while,

Add in the fact I don't have the PhD from the right schools, so for a few, it can't be that useful, and I really wish it wasn't near impossible to find academic appointments.

Comment Make sure you actually know the answers... (Score 1) 1001

I have an advanced degree in Computer Science, yet for various reasons, I'm in the market. I usually just have to bite my tongue and go through the paces, but I've never been in the room with anybody that understand algorithms to the degree that I do that asked these questions. Because the people that have the same understanding that do look at my education and just skip to what I'm interested in, what they are looking for and so on.

Once, I decided to use recursion just for a change of pace. In the end, the interviewer just showed that he didn't actually know what tail call form was. Remember, the people that really know what they are talking about will always admit what they don't know and what they look up. It's the one that are trying to be and look clever that are problematic.

Also, if you are just trying to see how people approach problems, just say so. Also, the vast majority of programming isn't oriented around algorithms and data structures, it's all domain representation and library integration. But nobody asks "let's try to capture the essential properties and methods of a class for a shopping site customer." for example.

Comment No Surprises There... (Score 4, Informative) 169

Neurons aren't digital processors. A set of connected neurons isn't either. Neuroscience already knows that it's really difficult to learn about the structure and function of the brain from the available tools. What was more interesting was that they were able to pick up anything. They found that the chip had a master clock, for example.

There are people already challenging the use of viewing the brains as a computer (signal ins and outs) in terms of really understanding how brains organize and function. So, given all this, it's not surprising that the methods didn't fare well. The neuroscientists already knew they had a very tough task, it's those in CS and AI that are assuming that understanding the brain is the same as understanding a collection of digital circuits.

Comment Re:Try JPython (Score 1) 129

Type checking is ultimately formal verification (see the Curry-Howard correspondence). Of course, this limits what type systems can specify about a program, and practically, the restrictions placed on languages based on certain more advanced type systems greatly limit their use in general programming.

Comment Reference Material... (Score 1) 381

The modern version is much more of a reference than textbook. While exercises still are part the book, it really for testing knowledge. Also, the field has just exploded and the task is really daunting. Satisfiability is an example, the current fascicle is 320 pages, but a more in depth look at the problem could run to twice that much and more. And there is new work being done on the topic every day.

Frankly, less and less programmers will need it, as it is easier and easier to create and use algorithmic libraries. Also, optimization just isn't what it used to be. Modern embedded silicon is quite roomy and complete control of the hardware leads to more problems (think buffer overflows) than it often solves. Finally, code that is verifiable is of more overall value, and so simpler algorithms and more constricted languages may be the future of a lot of code bases.

But, it's an awesome project and always will be.

Comment Closure and Threads... (Score 0) 497

While I agree that they can be difficult, they exist for a reason, and frankly, with some proper study of functional and parallel programming, they can be used correctly. Closures have been a part of programming since LISP and frankly, higher order functions and functional programming can solve a lot of problems quite nicely. Certainly, mutability makes that a bit more difficult, but it can be managed. Finally, figuring out what variables are captured in a closure is quite doable by static analysis, which would be a nice addition to some programming environments.

Threads are more difficult for sure, but there are frameworks that can provide some useful higher level abstractions to make there use a bit easier. Lower level usage can be quite difficult, but a bit of actual thought and design goes along way. Also, there are some really powerful tools for multithreaded debugging, they just aren't freely available.

Mainly, I've found that people that can't manage these abstractions just don't have enough background in operating systems (which also discusses basics of concurrency) and functional programming, topics that used to be required in CS education. They can be learned and it can increase your overall code quality and reduce some frustrations.

Comment It's not about the learning.. (Score 2) 435

It's about the increasing biases in the industry that assumes that older programmers just can't possibly pick up new technology without a lot of help. It's quite the opposite in many cases. As if somebody that started programming hasn't moved from language to language multiple times. They understand the fundaments, and they don't just chase one trend after another. They have a good sense of what is mature enough for consideration and what isn't.
They know that programming all the time not only isn't necessary, it is detrimental in the long term.

Comment Don't review what you don't understand at all... (Score 1) 163

Seriously. The author seems to have no idea what the Windows Subsystem for Linux is nor how it works. There are separate file systems for a reason. The things the author tries are exactly the things Microsoft make it very clear will be very problematic at best.

The POSIX model and the Windows model of permissions are completely different. Instead of trying to map between the two (something Cygwin does variably well, sometimes really badly), they provide a file system with the semantics needed. Finally, there is no Microsoft version of Bash. It's Bash, compiled for the Linux kernel (like most packages) that is being run as is by the subsystem. The subsystem has bugs, this is known, this is beta software and it is software that even Microsoft is smart enough to know that they need as many people trying it to find bugs as needed.

And it does fill a very specific need and more importantly, it's further building out the newer subsystem parts of NT, which might come in handy for other things down the road.

Comment Re:Never was a reasonable conversation (Score 1) 249

Also, you don't have the right to deny your child the chance to be healthy and not suffer preventable diseases for any reason. We are a modern society. This is simple, just take the choice away. A child that medically able to be vaccinated will be, free of charge. Any attempt to interfere with that process is child neglect and will be handled as such.

Also, I want vaccine availability to be a specific line item in foreign aid for countries. I want a consistent vaccine development program at the CDC with proper funding.

Why all this? Because vaccines are one of the most successful public health interventions ever. Only basic sanitation and clean water has been more successful and yes, they are in the same category.

Comment Re:Larry's bombast (Score 2) 157

On what service?. Azure has CDN services with similar pricing structure as AWS. No free tier, though.

Of course, cloud pricing is very tricky, overall, but the cost structures between Amazon and Azure are more and more in line these days, The competition between the two is starting to show some pricing benefits.

Comment It's just a tool... (Score 1) 349

And is limited to how well you use it. As the article noted, OpenOffice and LibreOffice will do they same thing as well. They noted Sheets doesn't, but I can't get Google Sheets to handle dates consistently at all sometimes.

This is just an excellent example of what works for a large population of users can be a bad thing for a small set of users. After this paper, I expect the error rate to drop dramatically, given how easy the fix is.

Comment Intel's Roadmap is really confusing... (Score 2) 55

Okay, they cancel Broxton, but then they release this. So, smartphones and tablets are out, but this is a great prototyping board for industrial IoT and other smart devices? Look, if they don't have a story on cellular network capabilities, nobody is going to care, and if they do have a story there, then they didn't really leave those markets. Does the Surface Phone crawl along, zombie like, after all? At any rate, Intel has a lot of work to do in the embedded space. A lot.

Slashdot Top Deals

"In matters of principle, stand like a rock; in matters of taste, swim with the current." -- Thomas Jefferson