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


Forgot your password?
Check out the new SourceForge HTML5 internet speed test! No Flash necessary and runs on all devices. ×

Comment Re:C# (Score 1) 338

I love C#. It is my favorite programming environment. However, C#, like Java, is wedded to a virtual machine with Just In Time compilation. It was a deliberate and usually sensible design choice.

Swift, in contrast, compiles to native machine code. That too was a deliberate and sensible design choice. Swift can theoretically be a "systems programming" languages as in, "You can write operating systems with it.". C# is not suitable (as it is) for systems programming because C# programs generally do not interact with real hardware. They interact with virtual hardware.

In the vast majority of cases, I find use C# or Swift more or less equal with an aesthetic preference for C#. There are a few cases where Swift is suitable that C# is not.

Comment Re:Parallelism (Score 2) 338

Certain languages like Scala, some Lisp variants, and Erlang do a pretty good job of supporting concurrent and parallel programming. To my knowledge, no programming language fully relieves programmers of the burden of devising design not including race conditions, priority inversions, deadlocks, resource contention producing serialized execution, and countless other "gotchas".

It is hard enough to find a programmer who can translate a recursive algorithm into a loop or visa versa. It is hard enough to find programmers who can correctly code non-trivial algorithms of any sort. It is nearly impossible to find programmers who are able to correctly design let alone implement concurrent and parallel programs. It seems that very few human beings are able to conceptualize concurrent programming... but that may just be the case in my little corner of the universe.

Comment Re:Swift libraries (Score 2) 338

Possibly copying libraries into each App bundle on iOS sidesteps one of Android's key security issues: Any exploitable flaw in any shared library potentially enables privilege escalation and destroys any utility or protection from Android's "every app has its own user id" paradigm of security. Android's sandboxes aren't... for that reason among others.

In contrast, iOS uses hardware virtualization capabilities of ARM processors to more truly sandbox apps. An app can gain root permissions and still not be able to mess around outside of its sandbox.

Comment Any insight into language design choices? (Score 5, Interesting) 338

I am a 25+ year Objective-C programmer and among other topics, I teach "Mobile App Development" and "Comparative Languages" at a university.

I confess to being perplexed by some Swift language design decisions. For example,

- Why does Swift have both a "var" keyword and a "let" keyword? One should be sufficient with the other being a default behavior. If a symbol is not declared "var" then just assume it is constant or visa versa. Furthermore, it may not be necessary to have either of the key words because (I think) in every case, the need for variability and mutation should be determinable by the compiler. Type is already being inferred by the compiler, and mutability could reasonably be considered an aspect of type.

- Why are Swift collection types like Data always mutable? What happened to the concept of immutable containers from Cocoa. [Yes, I know the "bridged" CF types are always mutable, but that was another bad decision IMHO.]

- Swift is intended to be a "Systems Programming Language", is it not? Yet, there is no support for "volatile" variables needed to support fundamental "system" features like direct memory access from peripheral hardware.

- Having experienced frustration trying to port high performance graphics code from C/C++/Objective C to Swift, what's up with that? IMHO, Apple's sample code for using OpenGL/GLKit/Metal from Swift leaves the impression that Swift is unsuited to the style of "low level" programming needed/used by OpenGL/GLKit/Metal.

- Why not support "dynamic runtime features" like the ones provided by the Objective-C language and runtime? It's partly a trick question because Swift is remarkably "dynamic" through use of closures and other features, but why not go "all the way?"

- Finally, a trivial aesthetic critique: Why "var foo : typename" like Ada and Pascal (IIRC) instead of "var typename foo" like every language that inherited C style syntax? Is there an advantage to the Swift approach that I haven't seen, or was it just an aesthetic choice? Did the choice not produce some IMHO "silly" syntax for method declarations with named parameters?

Comment CDC Cyber 6000 from roughly 1966 (Score 1) 620

CDC Cyber 6000 mainframes from roughly 1966 are still defending or at least warning the USA of missile attack.

AN/UYK-43 32-bit computers in United States Navy surface ships and submarine platforms starting from 1984 are still in widespread use.

AN/AYK-14 is a microprogrammed 16-bit airborne computer that was designed in 1976 by the Control Data Aerospace Division in Bloomington, Minnesota, and it is still in widespread use. https://en.wikipedia.org/wiki/...

Comment Class Action? Similar story... (Score 4, Informative) 165

IANAL, but ...
Many years ago, I worked in the USA for a Canadian Corp. The Corp. routinely bounced payroll checks, delayed sending payroll checks, or wrote payroll checks for less than the amount owed. Every time theses things happened, the Corp. claimed it was difficulties with exchange rates and transfers to the USA bank from which pay checks were drawn for USA employees.

I happened to work right across the street from a US Federal Building, so one day, several co-workers and myself walked over to inquire about any remedies that might be possible. We provided documentation to the helpful FBI agent who said bouncing payroll checks could fall under FBI jurisdiction. I also happened to mention the situation to my congressman who I knew socially as a long time family friend. A few weeks later, a Treasury Department person called and told us that nothing could be done to induce better behavior by a Canadian Corp. with respect to USA "employees", and furthermore, we weren't employees. We were considered independent contractors from the point of view of the Canadian Corp. Apparently, a shell USA Corp. employed us as regular employees with benefits and then contracted with the parent Corp. for our time. We received W-2 instead of 1099, but we were effectively 1099 contractors. The Treasury representative seemed to be telling us that we were not protected by USA labor laws or banking laws.

Treasury representative's statements didn't seem right, and we asked many questions to clarify our understanding. Several of us asked a local lawyer about the situation, and the answer we got was that any court action would have to start in Canada, and any settlement would be consumed by attorney fees. In other words, it wasn't worth it.

After a while of continued mistreatment, all of the USA employees except a few salesmen who worked on commission moved on to greener pastures. Such is life.

Comment Re:Why Force Your Children to Live in the Past? (Score 1) 734

While I am sympathetic to your point of view, I still disagree.

Europe is not magical. There is a significant homelessness problem in France, for example. The French unemployment rate has been higher than the USA unemployment rate for every single year since 1948. (Yes, there are differences in the way unemployment is calculated, but France has had higher unemployment even when statistics are correlated).

Taking your assertions one by one:
Since 2008, The USA has offered 53 weeks of full unemployment benefits when a person looses a job. That is actually quite generous even by European standards.

USA healthcare is not the "worst healthcare system in the world" by any measure. In 2000, the USA was rated 38th. Belgium was rated 21. http://en.wikipedia.org/wiki/W.... The USA has presumably improved since 2000 with more people covered by insurance etc.

USA crime rates are at historic lows. http://en.wikipedia.org/wiki/C...

"very little maternity leave, no paternity leave, a recent push for no sick time or vacation time (they lump it all together) and we also have the shortest amount of vacation time compared to all the modern countries. our corporations work the workers to death and then dispose of them, IF you can even GET a job in the US (h1b, yes! born here, sorry.)" ... The USA is composed of 50 states. Not all labor laws are at the federal level. Absence of laws does not mean absence of benefits. For example, I have 6 weeks of paid paternity leave, 5 weeks of paid vacation, and numerous other employment benefits that are not enshrined in law.

Comment NOT like Microsoft's Visual Studio GUI layout and (Score 2) 69

Interface Builder has not changed in any fundamental ways since it debuted in 1988 with NeXTstep.
Unlike crappy Microsoft tools for the 90's, it is NOT a screen drawing tool. It is an object instantiation and configuration tool. You set the properties and relationships between live objects graphically. The objects are then archived (serialized) and later unarchived (deserialized) into your running iOS app.

Watch this from 1992 http://www.youtube.com/watch?v...
Steve Jobs demonstrates Interface Builder starting 23 minutes into the video. Also note that Windows 3.1 shipped in 1992.

Just for fun, here is NeXTstep from 1988 http://www.youtube.com/watch?v...

Comment Re:The web and hyper text are a challenge (Score 2) 211

As a university instructor, I disagree. Many subjects are presentable in sensible sequence with knowledge neatly building on prior knowledge. The entire curriculum is created with prerequisite and co-requisite courses. Attempting a 400 level class without having mastered the 100 level course content is a recipe for pointless struggle.

Wikipedia is a great resource. It's articles are self contained and generally rely only on general knowledge. Wikipedia is not a good source for delving deep into subjects.

Having said that, I use wikipedia extensively. There is almost an entire Computer Science undergraduate curriculum in there. t still requires a guide. There are still sensible paths through the information. Here is a great example: http://en.wikipedia.org/wiki/Fibonacci_heap In the context of a Data Structures course, that is a great page. What benefit would that page provide to somebody who has never programmed and doesn't know what a data structure is? You can follow links to http://en.wikipedia.org/wiki/Heap_(data_structure) and then http://en.wikipedia.org/wiki/Data_structure and then you are directed to dead-tree textbooks that explain the topics in a sensible sequence.

Comment Stack Overflow (Score 4, Informative) 211

In my opinion, Stack Overflow is most often the blind leading the blind. There will be 20 wrong answers, 10 answers to the wrong question, 2 suboptimal solutions, and if you are in luck there will be 1 good solution. Now, tell me which is which. It seems to me that the good answer is almost always buried under crap.

Stack overflow questions are often badly stated and difficult to find with more correct search terms. If you don't even know the search terms, the site is useless.

There have been a few times when stack overflow saved me a lot of time. There have been many times when stack overflow has been a pointless time sink.

Comment The web and hyper text are a challenge (Score 5, Insightful) 211

As an author of three successful dead-tree programming books, I have a few observations.

1) I use the electronic versions myself because of easy search (better than an index) and copy/paste.
2) In book format, it's possible to lead a reader through topics in a sensible order that builds on prior topics.
3) The challenge with electronic/on-line documentation is that there is no expectation that readers will approach the material in any particular order. Readers type a search term into google and up pops a page or two of documentation. How can the author make safe assumptions about the definitions of terms and prior conceptual knowledge the reader will have? Adding links to the definitions of terms and links to chapter oriented conceptual documentation doesn't usually help because readers are impatient, and there is no good place in the middle of the documentation to start.
4) Many readers don't know the terms to type into google and therefore aren't lead to the relevant conceptual documentation even if they would have read it had they known.

Comment Re:Proportional representation (Score 1) 500

Each USA citizen votes for one representative in the House of Representatives and two Senators. Each representative represents slightly less than 1,000,000 people. Given voting rates, a US Representative can get elected with as few as 200,000 supporters.

Residents in Wyoming, Vermont, North Dakota, South Dakota, Alaska, Delaware, and Montana can elect senators with as few as 200,000 supporters.

Small interest groups in large states like California and New York are unlikely to get any representation unless they happen to be concentrated within one or two congressional districts. Of course, that's the case in places like New York City and San Francisco where individual neighborhoods are almost sufficient to elect their own representatives to congress. Barney Frank of Massachusetts's 4th congressional district is a stirling example of a congressman with a vary narrow and special interest constituency. See also Charles Rangel who represents the Harlem portions of Manhattan.

In a proportional representation system, would Harlem have any representation? Would anyone in North Dakota be represented?

Slashdot Top Deals

It's a poor workman who blames his tools.