Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×

Comment Re:Why is multicore programming so hard? (Score 5, Interesting) 256

I know it was partially true, I should remember not to be too lazy when posting on /. :).

Note that I was not talking about automatic parallelization which is indeed possible only with pure languages (and ghc is experimenting on it); but simply about the fact that is is easier to parallelize an application with immutable data structures since you need to care a lot less about synchronization. For instance, the Erlang actors model (also in other languages like Scala on the JVM) still requires the developer to define the tasks to be parallelized, yet immutable data structures make the developer's life a lot easier with respect to concurrent access and usually provide better performance.

My "It is true" was referring to "functional languages" which do usually privilege immutable data structures, not to Haskell or Lisp specifically (which as you said has many variants with mutable structures focused libraries). As you said, Clojure is itself a Lisp-1 and it does privilege immutable data structures and secure concurrent access with Refs/STM or agents. What is more interesting in the Clojure model (compared to Scala's, since they are often compared even though their differences, as functional languages and Java challengers on the JVM) is that it doesn't allow unsafe practices (all must be immutable except in variables local to a thread, etc).

Interesting times on the JVM indeed.

Comment Re:Why is multicore programming so hard? (Score 5, Informative) 256

Haven't video game programmers been doing it forever, doing some things on the CPU, some on the graphics card?

The problem is shared-memory, not multi-processor or core itself. Graphics card have dedicated memory or reserve a chunk of the main memory.

And I heard functional languages like Lisp/Haskell are good at these multi-core tasks, is that true?

It is true, because they privilege immutable data structures which are safe to access concurrently.

Comment Re:Install, did you say? (Score 1) 148

Because they are "Open Source" business-minded and not "Free Software" supporters, meaning they don't give a fuck about providing a full Free stack. I have come to the tragic conclusion that most Open Source contributors are now running Windows.

On the other hand, would they care to make their software Free if it weren't for the Open Source movement? At least we can port the best written software (if its core is not too tightly-coupled to Win32 APIs), so still better than nothing. The biggest problem is that it completely overshadowed the moral aspects of Free Software, which are now to of many corporate Open Source developers nothing but a joke under the pretense of pragmatism and practicality.

Comment Re:Guesstimates? (Score 1) 409

So instead of telling developers to abandon tools which make their job and life easy, how about requesting Linux developers to make game development a little easier?

The problem is that there is no such thing as "Linux developers". Afaik, OpenGL is maintained by the OpenGL ARB and it looks it needs more support. I agree it is inferior to DirectX, however it is not by abandoning it that the solution will improve. Windows game developers are responsible for the situation by adopting DirectX and succumbing to Microsoft's charms so massively. It's Microsoft, everyone saw it coming.

Anyway, I was not talking about the quality of the API but the achievable end-results which are close to DirectX equivalents (the proof is that Wine translates DirectX to OpenGL and games don't end up looking so bad). I would rather have slightly worse looking games and having them run natively on Linux.

OpenGL ES is a strict subset of OpenGL and the UnrealEngine2 can run under Linux natively. The 3rd version doesn't run Linux/BSD yet (afaik) because I guess it is not a priority, but I don't see why it couldn't.

For being a developer on a cross-platform game (using SDL but knowing how to do it in a "lower-level" way with X / ALSA), I can assure that while it's not perfect, the sound & mouse events is a non-issue. It's only a matter of reading doc... of course the development environment could be better, but it won't happen magically: even in the best case scenario, it will happen gradually if games are release natively.

Comment Re:Guesstimates? (Score 1) 409

Thanks for the link! It doesn't look bad even if I am not very much into realm/faction-based MMOs. However the RTS part seems really nice! Players can even run their own server. Their forum, which is usually a good indicator of the community, looks civilized and written in proper English. I have found that Linux games tend to have a more mature community. I will try it when I have some free time.

I also know of Regnum Online which has a native client, but having played it I can tell it's utter shit and I'll spare you the link. If you are masochist, use Google :).

Actually, I am rather selective for MMOs, it's easy to get addicted even to bad ones. I dream of Mortal Online with a native Linux client.

Comment Re:Guesstimates? (Score 5, Insightful) 409

Unfortunately this will be buried in the mass of posts, but I'll go anyway.

If a game developer releases his game for Mac and Linux as well, maybe that's 10% market share but it's not the same market share! It's really disappointing to see this fact so often overlooked. Because not all users are the same. Mac and Linux users are DYING to play games. Meaning that a lower market share could still have higher game adoption.

For instance, take MMOs. There are no decent MMOs running Linux natively. As a former Ultima Online player now reconverted into a Free Software enthusiast, I would love a good MMO to play. But I will not use Windows.

The market for MMOs is *saturated*. If you publish yet-another-MMO, whether it's for a niche market of players (hardcore MMOs such as DarkFall of Mortal Online which I would love to play) or another WoW theme-park-MMO clone, you still have to convince Windows players to buy your game and pay the monthly fees. The Linux desktop usage may be lower, there is NO competition for MMOs. Meaning all suckers for MMOs like me would play if the game is any good.

In fact this applies to most games because the market is saturated. It is better summed up by the Lugaru game developers.

IMO, game developers are only missing opportunities. Once they release for Linux and Mac, desktop usage will raise and more people will favor their games over their Windows-only competitors.

Last argument is that "Linux users only want free". This is wrong. Windows users are a lot more about cracking and pirating. If Linux users see something of value, they will no doubt buy it to encourage companies to continue. Most Free Software enthusiasts have no problem with proprietary games because it can be considered a piece of art rather than a piece of software. At least art resources (graphics, music) need not be free, even RMS says so :). And we *are* desperate for good native games.

So (to game developers), stop depending on DirectX! Use abstraction layers between DirectX and OpenGL. UnrealEngine 3 works with both, and considering how advanced it is, I don't want to hear shit about how OpenGL is not as good. It will only get worse if game developers let it die. And release NATIVE support for Ubuntu and Fedora. The community will make sure it works on other distributions.

Comment Re:...then IBM wouldn't be into OSS at all (Score 2, Informative) 370

And, it is also possible to (gasp) add proprietary code on top of a GPL project too. It simply takes a bit more work. Several companies have been doing this with Linux for years. Here's how to do it: 1. Submit hooks into the GPL code back into the GPL project. These hooks will be used to connect your proprietary code into the GPL code. Most likely these changes will be rejected by the project. Who cares? You've done your bit. 2. Now use the open source hooks that you submitted, but were rejected by the GPL project to create a new GPL project that includes those hooks. Can't stop you from forking a project! 3. Now build the proprietary layer of your code on top of the hooks. As long as you are dynamically linking into the GPL portion of the code, you are safe from the GPL license. Otherwise, you wouldn't be able to run any proprietary third party application on a Linux box. If that was the case, IBM would have dropped Linux a long time ago. 4. Rake in cash by leaching off the GPL software project!

Nope. Your "loophole" doesn't exist, you cannot link either dynamically or statically on top of a GPL'ed piece of software without your code being GPL'd. But as with all copyright infringement (which is exactly what you are describing), a copyright owner has to complain / sue you. In the case of proprietary Linux modules, they are tolerated by Linus and other kernel developers because they feel they add value anyway. So it's a tolerance that might as well stop tomorrow.

Why is Nvidia safe? Because they don't themselves distribute GPL'ed code. They only distribute their modules which are very similar to Windows or Mac drivers. The only Linux-specific parts are the interface/hooks and this is rarely considered as derivative work (it really depends on the interpretation of the judge at the trial), so that's how far the legal uncertainty goes for Nvidia.

If the user himself links proprietary to GPL'ed software, he is safe: the GPL has no provision preventing the end-user from any usage. However, the ones who are distributed GPL'ed software automatically linking proprietary modules to the kernel are.... Ubuntu and other distributions (note that Debian does not). They are actually the ones most likely to be sued if a kernel developer with copyright relevant to the graphical subsystem in the Linux kernel (or some code from which it was derived) wanted to go against the flow (because, most kernel hackers stopped caring even if Greg K-H complained about it, and obviously Linus doesn't give a shit because he's "rational").

Now, do the same with a GPL'ed project whose copyleft belongs to the FSF and it will be another story altogether. I think it might hurt :). So what you're saying will work only if the original authors don't want to enforce the GPL for a particular case, and you should ask them first -- they will never say they don't care officially, but you can still test the water if you like to play.

I agree this licensing stuff is tricky, but the GPL actually works and makes sense (but if I lack sleep I can't wrap my head around it).

Comment Re:OK this is just stupid (Score 1) 715

I'll reply to you but I could as well have replied to the other hundreds of similarly ignorant posts. The difference I guess is in your uneducated (dare I say moronic) title.. When you ssh a GNU/Linux server, it *is* free because you have access to the DATA (and to the free software using it). When you are doing "local computing", data access is guaranteed so the focus so far was on software freedom. When you do "remote computing" (ie cloud computing, SaaS, etc), the notion of *usage* Freedom needs to be extended not only the software, but also to control over the data as well as the guarantee that the software running (or at least the data managing parts) is the software you can obtain.

Reading the article and past RMS interviews, this interpretation seemed obvious but you are so many calling him stupid for stating that simple fact yet not even understanding how obvious it is that it ends up being a pathetic flame-fest. In fact, the most important aspect of remote computing is the control over your data (at least the ability to get it back) in a standardized way so that even if you don't have the software that's running on the other end, you can have a free software of your own do it.

Next time maybe you can read, and if you did, try understanding. Sorry for the rude tone but so much ignorance or ease to go flame gets on my nerves.

Now you may disagree and think that it's OK if you spent 2 years uploading data on facebook that is totally yours (your inputs, your personal life, your photos, etc) and can't even get it to process it yourself or upload it to a (better) competitor, that's your problem. RMS is only saying one thing: Free Software is about control over the data, and if you do remote computing, then you need more than just Free Software to ensure the very freedoms that the FSF is trying to defend. Sorry, but he makes sense.

It IS possible to do SaaS in a way that guarantees control over data and software freedom, that's just not what is being done.

Comment Re:Scala seems to be Java+/- (Score 1) 324

In fact I used to program a lot in C++ and I loved it. I was very much in Bjarne's school of C++ and programming it just like He said (even among ##C++ freenode helpers/idlers at a point); definitely not programming it like C at all (I still love C). But my points are still valid. Sure, the const modifier in C++ is great to get the typing system to prevent writing on some refs. Sure, the typing system isn't bad for an imperative language. But it is still light years behind ML & fp, and that is something Scala does very nicely and it keeps the object oriented paradigm.

One of the things I love most in fp (and Scala does it right) is that "everything is an expression that returns a value". For example, an "if" is not a statement in ML or Scala, it's an expression and you are guaranteed that both branches will return the same type, so you can write: val x = if (...) y else z

It doesn't look like much but when you get used to it and what you can make of it, it's something that I miss in imperative languages. I often think of Scala as C++ done right (note: these are EXTREMELY different languages, I'm talking about the feeling): not too much low-level details to care about (for instance, Java's "all objects in the heap, only refs/primitives on the stack", and always have a gc, simplified a LOT programming compared to C++'s static & automatic objects on the stack vs. objects in the heap). But unlike Java (and very much like C++), Scala is fun to program in and gives the developer a feeling of freedom and power.

Anyway I'm not expecting I will convince a C++ programmer over a post -- but I convinced myself that C++ is fundamentally flawed. And whether you trust me or not, I guarantee you that I know C++ very well. A programming language is all about giving you the right tools and abstractions. Quoting Saint-Exupéry, "Perfection is reached not where there is nothing left to add, but when there is nothing left to remove.". In that regard, Scala is a lot closer to it than C++. You should give it a try :).

PS: My code has never been evil :).

Slashdot Top Deals

HELP!!!! I'm being held prisoner in /usr/games/lib!

Working...