Catch up on stories from the past week (and beyond) at the Slashdot story archive


Forgot your password?
Slashdot Deals: Cyber Monday Sale! Courses ranging from coding to project management - all eLearning deals 25% off with coupon code "CYBERMONDAY25". ×

Comment Re:3D programming requirements (Score 1) 616

Matrices are absolutely *critical* to 3d graphics, and any non-trivial 2d graphics. Those photoshop plugins are *heavily* based on linear algebra.

The code might not be written in mathematical matrix form, or be hidden behind libraries, but if you have 3-vectors (i.e. points relative to the origin in 3-space), any global linear transformation is represented by a matrix multiplying each vectors. Rotation, skew, scale, projection (shadows and reflections) and scaling are all linear transformations.

It's like saying matching text doesn't require state machines. It does, you've just never used them in their raw form. Meanwhile, learning the actual theory of how regular expressions and compilers actually work requires that you understand state machines (because that's what lex and yacc actually spit out, or what your higher level language actually dynamically constructs based on the regex). Likewise, understanding the core theory behind computer graphics necessitates learning linear algebra.

Comment Re: Swift (Score 1) 365

The ternary operator cannot be syntactic sugar as it produces a value, while if/else does not. They are two completely different concepts.
Ternary statements are better in certain situations because you can place (limited) logic of what you are assigning close to what is being assigned, and do not clutter up the scope with numerous temporary variables.
new object { SomeField = flag ? value1 : value2; OtherField = flag2 ? someValue : otherValue; }
If you start constructing objects with many fields, the if/else blocks create further and further separation between the logic of what's being assigned, and what it's being assigned to. Considering each if/else can take from 5 to 8 lines of code depending on bracing style, you start running into trouble where you can't keep it all within eyeshot at once. With the ternary statement, you can do it all inline.
I will agree that anyone nesting/chaining ternary operators more than twice is not a good idea.

Comment Re:As long as they're not forced (Score 1) 217

> Just like how we are forced to learn how to read, write, and do arithmetic.

Not to mention basic set logic using Venn diagrams (All feebs are groobs, and some groobs are neeves, so are some feebs neeves?), and I'm sure some elementary propositional logic is still taught (i.e. your standard Boolean stuff) at some point.

If you really think about it, what is good programming but reading and writing complex arithmetic and logic (along with short prose comments, one would hope) in a clear and concise manner? Thought of that way, is not programming the culmination of all the basic skills we are taught in school?

Comment Well, what is minimum usefulness required? (Score 2) 263

Tier 2 support might get by with being able to read and diagnose problems, them pass them on to dev. Junior programmers might need bare minimum of syntax and structure, the heavy lifting being taken care of by the architecture team: anything they can't handle goes to the senior developers. Architects and thought leaders may need to at least be familiar with every major library, and experts or even contributors to the ones critical to their systems in order to be useful in their roles. Improperly scoped questions are guaranteed to generate non-productive discussion as people are arguing from their own positions.

Comment Good PHP Code is Possible (Score 1) 281

Just like good Perl is possible. That being said, if you are going to take the time to write correct, well-architected, maintainable, etc. system, you will spend equal amounts of time in any language or framework. PHP makes some things very easy, but that easiness is skin-deep, and it's exactly the same with Ruby on Rails. Yeah, you can rapidly prototype things and get stuff running in front of people. Scaling it, making it robust, and making it part of a whole ecosystem of mutually self-supporting tools, applications, and utilities? You know... real world software needs? That's going to take a good amount of effort and design in any mature framework.

Comment Re:AP Computer Science is not AP CS Principles (Score 1) 47

At least when I was in college, there were two intro CS courses: one for STEM majors and one for the non-STEM majors. The non-CS major course still had programming, but was in psuedocode. It had more HTML work, etc. and didn't focus as much on complexity or anything like that (it mentioned it, but it wasn't rigorous or anything). Since this wasn't a university, there were *very* few non-STEM majors. Were there some, I would imagine that there would have been an even easier version for them. In addition, usually in the sophomore year for CS majors, there was a "Computers and Society" course that focused on contemporary legal, social, and philosophical impacts of computing. So, for a CS-track student, it may count for an elective that would normally be run by a liberal arts department. For a non-CS, non-STEM student, it may count as sufficient for an Intro to Computer Science for liberal arts folks.

Machines certainly can solve problems, store information, correlate, and play games -- but not with pleasure. -- Leo Rosten