Which version of Python (multiprocessing)?

If Go is so good, why's it converted into C and assembler? Shouldn't it just go to assembler only?
Many languages first compile to C, which then compiles to assembly and then binary. C++ first compilers produced C code, so I think it's a natural first step for a language. IT does show it's still in its infancy, though.
It is also a lot easier on the eyes, which seems to be the Python influence on the language
A lot easier? Than java? Well, I wholeheartedly disagree. There are pointers inside. And labels and goto. Many different ways of saying the same thing, which I think is confusing and uinneeded (I dislike ruby for that same reason). No exception management and no generics, pass by value or by reference depending on what the language designers saw fit for a given type (hello, are you a map or a slice?)... Right now the syntax is rather ugly in my opinion. Channels and goroutines are fine, though, but it's a language developped by guys who code compilers, and their limitations show in the language design (exceptions and generics omitted because they're too hard to do now). It might become a usable language, but not before several years when it's become mature.
 
I would hope they would move to python 3.1 instead of the 2x series. Chances are less time would be spent converting a mod from 2 to 3 syntax than converting it from civ 4 to civ 5.

The question also isn't which language is faster, but which languages are fast enough for the task at hand. I have a hunch that many of the mod slowdowns is the result of adding too much in python instead of moving it to a c++ module or the sdk.
 
I wouldn't shed a tear if they used lua instead of python this time.

And I -really- hope their xml files (or whatever their format for data files is) are less redundant and easier to read. Got pretty tired of every building entry having ~40 bools that could all be defaulted to false in 95% of cases.
 
I wouldn't shed a tear if they used lua instead of python this time.

And I -really- hope their xml files (or whatever their format for data files is) are less redundant and easier to read. Got pretty tired of every building entry having ~40 bools that could all be defaulted to false in 95% of cases.
The amusing part? I think they had a full schema loader. Which means the community could have set up default values in their schema file, and then massively pared down the XML files in civ4.

I wonder if that would actually work.
 
I don't see why. If the C code is as optimal as possible when compiled, why would they reinvent the wheel? One would assume that they're only converting to assembly in situations where they think they can optimise better than C does natively.
This is wrong. There is no such thing as native C. C is always compiled to assembly. Hypothetically, a c interpreter could be written, but it isn't done.

The reason they compile to C first, is because the developers of the language can't write a good compiler. Converting a language to C is easier. It does have disadvantages, and a direct compiler could potentially be faster than a compiler that compiles to C first, because it can take advantage of assumptions built into the language that are not present in C. But for someone who isn't an experienced compiler writer, that doesn't matter. Nor does it matter for a team with limited resources, that can't afford to spend a lot of time writing a good optimizing compiler.
 
The reason they compile to C first, is because the developers of the language can't write a good compiler.
Actually, they certainly can write compilers. But if the language is in its infancy, and likely to change often, it's certainly easier to change the C-generator than the machine-language-generator.
 
This is wrong. There is no such thing as native C. C is always compiled to assembly. Hypothetically, a c interpreter could be written, but it isn't done.

The reason they compile to C first, is because the developers of the language can't write a good compiler. Converting a language to C is easier. It does have disadvantages, and a direct compiler could potentially be faster than a compiler that compiles to C first, because it can take advantage of assumptions built into the language that are not present in C. But for someone who isn't an experienced compiler writer, that doesn't matter. Nor does it matter for a team with limited resources, that can't afford to spend a lot of time writing a good optimizing compiler.

You are wrong. The C compiler itself optimizes; therefore, it is done NATIVELY. Also, C interpreters do exist - Do a google search.
 
Your points are valid for us, but not for most people. Google doesn't care about Windows or consoles anyway

I'd be extremely concerned if I was Google's CEO and someone told me "don't worry about Windows or consoles, just make it for Linux".

- At least 90% of personal computers run Windows.
- There are probably half a billion modern consoles out there (we know for certain that PS2 has 140 million in the market as the largest share).
- Social gaming (online / internet) is emerging as the newest money-maker (market estimated to be $11.5 billion by 2013).

So what, they're going to concentrate on 10% of computers which are not modern consoles or connected to the internet? How many computers do you think fits into that category now? 136 in total? :lol:
 
Really? I think Python is horrible to code in and would MUCH rather that only C++ is used.
Python is annoying to use until you build an entire library of the equivalent of type checking for any project that is bigger than a toy.

At the same time, as python is a reasonably powerful language with both automatic garbage collection and polymorphic variable types, it is "easy" for non-programmers to create toys.

As used in civilisation modding, Python lets you do things like "change what can be built by a city", which doesn't need more than a toy language to do. At the same time, as it is a reasonably full featured language, you can build crazy-ass stuff like your own A* caching pathing library without being driven completely insane.

It isn't a bad choice. In short: Python is a geekier, more powerful and robust alternative to what VBscript provides in Microsoft products.
 
I believe almost all of Google's infrastructure runs on linux systems. The Go language was something Google created for internal use and like what they did for Protocol Buffers, released it for others to use.

Another note on python, many core applications in modern distros (ubuntu at least, but I am sure it applies to the other big ones as well) are written in python. If it is so horrible to code in why did so many developers embrased it when developing the operating system?

Rhetorical question, just illustrating the difference between personal preferences.
 
I believe almost all of Google's infrastructure runs on linux systems. The Go language was something Google created for internal use and like what they did for Protocol Buffers, released it for others to use.
*nod* -- I suspect it is an attempt to make a sufficiently powerful language to run on things like map-reduce that is less likely to shoot yourself in the foot, like C++
Another note on python, many core applications in modern distros (ubuntu at least, but I am sure it applies to the other big ones as well) are written in python. If it is so horrible to code in why did so many developers embrased it when developing the operating system?
Ubuntu isn't an operating system. Unbuntu is a distribution of the Linux operating system.

Core applications in a distro: are you talking about gui code and tool code? Python is a high-powered scripting language, which makes it decent for command-line tools. It is also ok for building a small project involving gui around a simple set of procedures.

It also has the advantage, because of its rapid prototyping, that it lets you get a project off the ground and half-usable quicker. That might give it an advantage in open source environments, where a simple working program can attract developers to improve it.
 
yeah, I believe many place subscribe to the make it in python to get it working then convert to C++ later for speed
 
This is wrong. There is no such thing as native C. C is always compiled to assembly. Hypothetically, a c interpreter could be written, but it isn't done.

Sorry, perhaps my phrasing is incorrect there. What I meant was "as C does by default" - one assumes that for many things, C outputs the most optimal assembly possible so there would be no reason to re-write it.

Also, the idea that Google are employing incompetent developers to work on their language is just plain silly. Which explanation seems more feasible, you not understanding why they are doing it this way, or Google being utterly incompetent?
 
Ubuntu isn't an operating system. Unbuntu is a distribution of the Linux operating system.

Because of that sentence there, I can tell you know absolutely nothing about linux.

Linux is a kernel, not an operating system. Ubuntu is a operating system and a distribution of linux, because it includes the linux kernel. It also comes with a set of packages.
 
Because of that sentence there, I can tell you know absolutely nothing about linux.

Linux is a kernel, not an operating system. Ubuntu is a operating system and a distribution of linux, because it includes the linux kernel. It also comes with a set of packages.
Manifestly, you know nothing about kernels, operating systems OR distributions. You really shouldn't show off your ignorance this way and listen to Yakk instead.

Linux (using the word without qualifiers) always refers to the Linux OPERATING SYSTEM. Part of that operating system is the Linux kernel. This is no different from Windows or Max OS or any other operating system. When I refer to the Windows operating system, I include the Windows kernel, the utilities and other components. Same thing goes with Linux.

As for Ubuntu, despite the way that the makers like to style it, it is indeed a distribution. The main component of this distribution is the Linux OPERATING SYSTEM. It also contains an assortment of other utilities and programs, none of which - in any sense - qualify as part of the operating system.

Given the way that you use it, I rather suspect that you don't understand the word "package" either. Ubuntu does not "also" come with packages, as you claim. Ubuntu is a collection of packages. In fact that's exactly what a distribution is - a collection of packages. Some of these packages are optional. These, I suppose, fit into the "also" category that you made up. Some of them are obligatory, like the Linux operating system.
 
Linux (using the word without qualifiers) always refers to the Linux OPERATING SYSTEM. Part of that operating system is the Linux kernel. This is no different from Windows or Max OS or any other operating system. When I refer to the Windows operating system, I include the Windows kernel, the utilities and other components. Same thing goes with Linux.
Meh, he has a point. The Linux kernel is one thing you can call Linux.

And saying "the Linux operating system" makes less sense than saying "the Microsoft operating system", because Linux distributions change the environment that programs run on significantly between them.

In essence, things are fuzzy. And I was overly dismissive.

The point I was trying to make is that using python to implement a task bar doesn't mean that python isn't a toy programming language: task bars are toys. And as python is indeed Turing complete (beware the Turing tar pit my friends, the grammars that natch, the equivalences which sizzle), it can indeed do pretty much anything any other programming language can do: so you can indeed write huge applications that do arbitrary things in Python.

The fact that there are Unbuntu packages (even ones shipped with Unbuntu) that use python is almost certainly true. Saying "why did they use python when they wrote the operating system" is, on the other hand, ... misleading. They probably scratched their ass while writing "the operating system", and maybe even used ms paint while writing "the operating system" (had a windows box, and wanted to crop a screenshot).
Given the way that you use it, I rather suspect that you don't understand the word "package" either. Ubuntu does not "also" come with packages, as you claim. Ubuntu is a collection of packages. In fact that's exactly what a distribution is - a collection of packages. Some of these packages are optional. These, I suppose, fit into the "also" category that you made up. Some of them are obligatory, like the Linux operating system.
Well, sort of -- many Linux distributions are based on packages. Which are incompatible with each other, naturally. Others aren't based on it, while they might support such packages (because, after all, supporting a package management system gives you access to a :):):):)-tonne of software).

Of course, none of this really matters to this discussion.
 
Back
Top Bottom