it is less the static typchecking which is a non issue in most enterprise apps (I do that stuff) it is more the non declarative nature which can become a problem once the code grows bigger. I will give you an example.
myvar = 1... some code here
myval = myvar + 1... ops a typo above should be myvar... ad some code here
a typical issue which could have been caught at compile time/check time if there was need for a declaration of myvar first forced.
Shure you can write a unit test, but face it the harsh reality is, you dont do that for every method you write and lets see it that way
some kind of
var myvar, othervar, thirdvar
is less talkative than an entire unit test
The next problem really is the whitespace problem, once you work in teams of more than a handful of people now matter how strict the coding standards are, you will run automatically into the problem. And having the checker, compiler, runtime barking on an obscure invisible char and having you hunt down that on a regular base, is not something I would call more productive.
Ruby solved that issue elegantly, they simple leave it up to you how to do blocks, explicit blocks definitely dont bark on any whitespaces.
Not knowing Ruby explicitely enough, I think I have in mind that you still have the whitespace option if you want to.
To bad for nortel, that the laid off the workers first...
GE currently does the same over here in Germany with people laid off by the suddenly share holder value hungry Siemens.
Such things mostly can be blamed to management mistakes, no worker would jump to a weird competitor if the current workplace is ok. But with managements who think that their workers researchers and generally their personal workforce is just replacable for lower cost somewhere else, you dont really can expect that once such an opportunity arises, that people simply will be loyal to the greedy bastards who threw them out for raising the shareholder value in the first place.
It is not like sneakers became cheaper just because Nikey suddenly moved the work from the US to asia into non regulated low paid sweat shops.
The prics stayed high, and Nikey took the difference to raise its earnings.
The outsourcers now take over the market. Congratulations to all CEOs who shifted jobs to other countries, it is not like that has happened before with the car industry. Japan also started as an outsourcing base for General Motors and others.
Is it really better done?
The class library is very extensive, I give python credits here, java and especially smalltalk lead the way.
Smalltalk and ruby have much better introspection, so does java although I admit the java introspection is complicated to use.
The use of wildcards as block idents sounds like a good idea but failed way before python in the past (make) because you usually start to bang your head once tabs and spaces are mixed and you cannot see that.
The integrated data structures are a nicey though and taken straight from lisp. (Smalltalk sort of has that too but in smalltalk you have only three core commands the rest ist the classlib anyway)
The syntax remindes more very strongly on object pascal, which in my opinion is nice.
The heads up the ass attitude towards optional declarative instance variables is plainly wrong. The python devs constantly say that you dont need that (perl has strict to my knowledge) and you should write unit tests instead. Everybody who had to deal with bigger systems know how stupid this attitude is because you often dont have time to write unit tests for every method you write and a separate check gives you a small extra safety net to catch typos.
Dont get me wrong, Python is a nice language, but way to overestimated. I see it as a good rexx replacement as an easy to learn nice scripting language which is readable. But doing bitter systems with it, no way. There is a reason why Zope basically is pretty much the only big system ever done with it.
The main problem is not the whitespace identation itself, it is more that python like make barks on mixed intendations (aka, once uses tabs the other blanks) which can become a serious problem once you are more than a lone programmer on a project.
And as we all know, the lone programmer is a myth.
The other stuff like non declarative variables is a problem which many languages share but not having it in python can be a serious problem for bigger projects.
At least there is pychecker.
That easier to program is a myth which totally fails once programs become bigger. Besides that python does not bring anything really new to the table and is awkward in its handling of blocks.
The only advantage python has is that every once in a while it is mentioned there are around 20 zealots which never did anything bigger than a few hello worlds start to scream how wonderful this language is.
If you really need a good scripting language python does not really beat it, it is sort of an object pascal with a few safety nets removed and some bunch of lisp added (lambda functions).
If you need a good scripting language go for
Ruby, but neither of those I would use for a really big system.
Well the DS has built in WLAN has a very good touch pad and a stylus, so figure out yourself what you can do with it. If you cannot see the light, there are various PDA systems in the wild which build upon top of Linux (opie being the most advanced thanks to TrollTech and Sharp)
Actually I am really looking forward to this,
the hardware basically is the same you need for a PDA, add to that linux opie and you have some kind of Zaurus. Once they figure out on how to access the wireless hardware you even can do wlan synching.
In the end the DS might end up as entry PDA without any doing from nintendo.
You mean, that the status quo will extend itself into April...
No kidding, I was at a local apple reseller recently and they still had a backorder list of around 45 minis and only could deliver 5 so far!
Actually you could be right.
The recent delays in the release of the next stable, are extremely problematic.
I am a former debian user who now moved to Ubuntu (probably like many others)
The problem really was/is for me the release cycles.
Testing sort of is okish, but still running X11, unstable broke too often.
And stable, forget it, hell freezes over before they release the next stable.
Probably many users of Debian moved to Ubuntu and other apt based distros.
If Debian could go for a better release cycle mechanism they could get the uses back. But Debian really is stagnating currently.
10 years after the first installer, they finally have one, still one of the few distros running on XFree 4.3 (and they will be for the forseeable future)
KDE and gnome even if they pump out now the next stable already again a year behind the latest releases etc....
I just wonder, CoreImage needs pixel shaders, the mac mini, was in the first time to be regarded as not being able to support core image, but the integrated radeon 9200 can do pixel shading (first generation pixel shader)
So what is Apple doing regarding the mini. I cannot see how pumping pixel data over an agp and rather slow mem interface on the mini into altivec and pumping the image data back over agp into the radeon might help speed.
It might be even worse once, font rendering is done over core image.
Been there, done that. Java != Java on various cellphones, there are two specs currently in usage. Midp 1.0 and Midp 2.0 Midp2.0 enforces a JIT midp 1.0 had that optional and unfortunately Midp still is/was the most widely used spec and many cellphones did not have jits in them.
Newer ones have. You still will not get stellar performance, but definitely pretty much the same as on an Amiga with an 68020 processor which is not too bad given the fact that you have a low powered arm processor in the phone and lots of memory restraints which dont allow the jit to do too much optimizations.
However on some of themidp 1.0 based phones I agree with Carmacs arguments fully.
The rest I also agree, the write once run anywhere was sucessfully torpeoed by the cellphone makers, to lock in the code to their platforms as much as possible (hence did have midp such a problematic beginning because it made some of the core aspects platform independent which were served until then by the platform kits of the cellphone makers), by specing the midp extremely minimalistic. Add to that different key handlings, different screen sizes and you have to adjust cellphone code significantly to every platform.
But besides the speed argument which is a little bit to narrow and only partially on the true side (I wonder which cellphones Carmac targets)
Everything else is totally true
The best way to bypass this probably would be
to have a gecko activeX module which can be plastered into the IE for the standard conform web pages. That way most users would not complain, since they are used to downloading plugins anway.
You dont know Microsoft my friend. That has been their tactics since the mid eighties. They call that embrace and extend a standard. Which is the standard way for them to take over existing standards.
First they follow the standards, then they start to extend them with Microsoft only stuff, then they add bugs to their implementations which they never fix, and in the end you have to do twice the work, once for Microsoft which by then usually has the significant market share and once for the rest of the world which still follows the standards.
If you just follow the standards then you get the heavy beating of the users. Most people simply due to cost reasons then do Microsoft only versions and basically cement the monopoly of Microsoft. This is not done due to lazyness but often due to cost reasons.
The last step of this approach is to take over entirely, close the standard, break it in every possible way and put NDAs patents etc.. on it so that nobody outside of the Windows world really can use it.
This tactic has worked with SMB so far, Corba was another thing, OpenGL as well which basically was the base for the first really usable Direct3d version.
With HTML Microsoft already has started to do it by not implementing a properly working CSS1 and totally ignoring CSS2 and 3.
They already work on a closed replacement called Xaml which should by pushed by not doing anything they speced themselves in the W3C.
They already broke SVG with an incompatible implementation which they called differently and plasted with patents although only a few commands are broken, and the next step on this road probably will be the breaking of the newly specified open document format.
Kerberos was such an issue as well, they added a few bytes to the standard implementation and put everything under an NDA.
So what does this say to you. Dont expect anything from Microsoft, and the last you can expect is some decency and goodwill regarding the usage of standards, they only follow standards as long as they have less than 30% market share.
Also dont expect anything from your users, the average user is not aware of this whole mess caused by them, they just want things to work, the problem is they most of the times want to work with half working soft which has nice UIs and the tag of microsoft on top of it.
Which basically means you run constantly into problems and cannot move towards working alternatives.
If I count all the time together in the last 10 years, I probably have spent around 30% of my working time to navigate around problems Microsoft deliberately has caused and never fixed. The percentage probably would have been much higer if I had not used java and other cross platform stuff in the last few years, which normally just works.
And I am probably not the exception, count towards all developers in the world which have to deal with Microsoft platforms and the problems caused by them and you probably end up with the sum Microsoft has in the bank calculated from the loss of worktime over their deliberate breaking of standards.
So in the end my conclusion is that lots of the earnings by Microsoft are basically indirectly drained from the worktime of others to bypass their monopoly game on the technical side to make things work again. This is not a false conclusion since their non standard conformity tactis have been used by them since the mid eighties on a regular base.
Actually technically spoken, the weird old lady is not really german, not more than the average french or english is...
Her family was german two generations ago, and some other relatives still are, but she is not.
Those are typical family stories of every european family...
No language can cover a bad programmer...
But the difference between a checked case and an unchecked case is, that in the checked case you at least are forced to make the mistake, in an unchecked case, the exception which might be thrown here might fall flat on your face at a part which could be critical and could take down everything.
If the programmer decides to swallow an error, than it is up to him, it is not like he would not have known that this part causes the error.
Sorry, but if you ever have been into a medium sized system of a few hundred thousand lines of code, you will appreciate the safety net of checked exceptions compared to the trapdoor of unchecked exceptions every minute you code.
Actually checked exceptions are a good thing, sorry to say that. A checked exception basically forces you to do something. The main problem unchecked exceptions have is, that they fall on your head at code parts you would never expect them to occur and thus take your program with you.
One of the main reasons why java programs are so stable is the excessive use of checked exceptions. With every step you know which errors can occur and you are forced to do something abou it.
The downside of this is, that you basically have 20% more code which is dedicated to error handling at the stages the error can occur.
Re:Still a lot bigger than a Mac Mini
on
Pentium M Goes SFF
·
· Score: 1
Well.. my Mac Mini got its fair share of use... it simply is a homeserver and does lots of other jobs.
Currently it hosts SVN, a mailserver a database and other stuff and besides that it serves me the files via samba...
If your people could not figure out how to use a computer (because things look different) then they should stay away from computers at all, after all the mac mini is just a general purpose computer and you can do pretty much the same things with it as with a PC.
Wow a living legend, no seriously, most projects I worked on after university were projects with at least 3-4 people in it.
it is less the static typchecking which is a non issue in most enterprise apps (I do that stuff) it is more the non declarative nature which can become a problem once the code grows bigger. I will give you an example. ... some code here
myval = myvar + 1 ... ops a typo above should be myvar ... ad some code here
myvar = 1
a typical issue which could have been caught at compile time/check time if there was need for a declaration of myvar first forced. Shure you can write a unit test, but face it the harsh reality is, you dont do that for every method you write and lets see it that way some kind of
var myvar, othervar, thirdvar
is less talkative than an entire unit test
The next problem really is the whitespace problem, once you work in teams of more than a handful of people now matter how strict the coding standards are, you will run automatically into the problem. And having the checker, compiler, runtime barking on an obscure invisible char and having you hunt down that on a regular base, is not something I would call more productive.
Ruby solved that issue elegantly, they simple leave it up to you how to do blocks, explicit blocks definitely dont bark on any whitespaces. Not knowing Ruby explicitely enough, I think I have in mind that you still have the whitespace option if you want to.
To bad for nortel, that the laid off the workers first... GE currently does the same over here in Germany with people laid off by the suddenly share holder value hungry Siemens. Such things mostly can be blamed to management mistakes, no worker would jump to a weird competitor if the current workplace is ok. But with managements who think that their workers researchers and generally their personal workforce is just replacable for lower cost somewhere else, you dont really can expect that once such an opportunity arises, that people simply will be loyal to the greedy bastards who threw them out for raising the shareholder value in the first place.
It is not like sneakers became cheaper just because Nikey suddenly moved the work from the US to asia into non regulated low paid sweat shops. The prics stayed high, and Nikey took the difference to raise its earnings.
The outsourcers now take over the market. Congratulations to all CEOs who shifted jobs to other countries, it is not like that has happened before with the car industry. Japan also started as an outsourcing base for General Motors and others.
Is it really better done? The class library is very extensive, I give python credits here, java and especially smalltalk lead the way. Smalltalk and ruby have much better introspection, so does java although I admit the java introspection is complicated to use. The use of wildcards as block idents sounds like a good idea but failed way before python in the past (make) because you usually start to bang your head once tabs and spaces are mixed and you cannot see that. The integrated data structures are a nicey though and taken straight from lisp. (Smalltalk sort of has that too but in smalltalk you have only three core commands the rest ist the classlib anyway) The syntax remindes more very strongly on object pascal, which in my opinion is nice. The heads up the ass attitude towards optional declarative instance variables is plainly wrong. The python devs constantly say that you dont need that (perl has strict to my knowledge) and you should write unit tests instead. Everybody who had to deal with bigger systems know how stupid this attitude is because you often dont have time to write unit tests for every method you write and a separate check gives you a small extra safety net to catch typos. Dont get me wrong, Python is a nice language, but way to overestimated. I see it as a good rexx replacement as an easy to learn nice scripting language which is readable. But doing bitter systems with it, no way. There is a reason why Zope basically is pretty much the only big system ever done with it.
Thank god... I always hated lambda and saw this stuff as unneccesary... seems like a wise move to me
The main problem is not the whitespace identation itself, it is more that python like make barks on mixed intendations (aka, once uses tabs the other blanks) which can become a serious problem once you are more than a lone programmer on a project. And as we all know, the lone programmer is a myth. The other stuff like non declarative variables is a problem which many languages share but not having it in python can be a serious problem for bigger projects. At least there is pychecker.
That easier to program is a myth which totally fails once programs become bigger. Besides that python does not bring anything really new to the table and is awkward in its handling of blocks. The only advantage python has is that every once in a while it is mentioned there are around 20 zealots which never did anything bigger than a few hello worlds start to scream how wonderful this language is. If you really need a good scripting language python does not really beat it, it is sort of an object pascal with a few safety nets removed and some bunch of lisp added (lambda functions). If you need a good scripting language go for Ruby, but neither of those I would use for a really big system.
Well the DS has built in WLAN has a very good touch pad and a stylus, so figure out yourself what you can do with it. If you cannot see the light, there are various PDA systems in the wild which build upon top of Linux (opie being the most advanced thanks to TrollTech and Sharp)
Actually I am really looking forward to this, the hardware basically is the same you need for a PDA, add to that linux opie and you have some kind of Zaurus. Once they figure out on how to access the wireless hardware you even can do wlan synching. In the end the DS might end up as entry PDA without any doing from nintendo.
Add to that the opie project and you get a fully functional pda...
You mean, that the status quo will extend itself into April... No kidding, I was at a local apple reseller recently and they still had a backorder list of around 45 minis and only could deliver 5 so far!
Actually you could be right. The recent delays in the release of the next stable, are extremely problematic. I am a former debian user who now moved to Ubuntu (probably like many others) The problem really was/is for me the release cycles. Testing sort of is okish, but still running X11, unstable broke too often. And stable, forget it, hell freezes over before they release the next stable. Probably many users of Debian moved to Ubuntu and other apt based distros. If Debian could go for a better release cycle mechanism they could get the uses back. But Debian really is stagnating currently. 10 years after the first installer, they finally have one, still one of the few distros running on XFree 4.3 (and they will be for the forseeable future) KDE and gnome even if they pump out now the next stable already again a year behind the latest releases etc....
I just wonder, CoreImage needs pixel shaders, the mac mini, was in the first time to be regarded as not being able to support core image, but the integrated radeon 9200 can do pixel shading (first generation pixel shader) So what is Apple doing regarding the mini. I cannot see how pumping pixel data over an agp and rather slow mem interface on the mini into altivec and pumping the image data back over agp into the radeon might help speed. It might be even worse once, font rendering is done over core image.
Add to that, table inheritance, point in time recovery in postgresql...
Been there, done that. Java != Java on various cellphones, there are two specs currently in usage. Midp 1.0 and Midp 2.0 Midp2.0 enforces a JIT midp 1.0 had that optional and unfortunately Midp still is/was the most widely used spec and many cellphones did not have jits in them. Newer ones have. You still will not get stellar performance, but definitely pretty much the same as on an Amiga with an 68020 processor which is not too bad given the fact that you have a low powered arm processor in the phone and lots of memory restraints which dont allow the jit to do too much optimizations.
However on some of themidp 1.0 based phones I agree with Carmacs arguments fully. The rest I also agree, the write once run anywhere was sucessfully torpeoed by the cellphone makers, to lock in the code to their platforms as much as possible (hence did have midp such a problematic beginning because it made some of the core aspects platform independent which were served until then by the platform kits of the cellphone makers), by specing the midp extremely minimalistic. Add to that different key handlings, different screen sizes and you have to adjust cellphone code significantly to every platform.
But besides the speed argument which is a little bit to narrow and only partially on the true side (I wonder which cellphones Carmac targets) Everything else is totally true
Not really quite true, first they did not release the info, after massive criticism they released the info under a load of NDA EULAs...
The best way to bypass this probably would be to have a gecko activeX module which can be plastered into the IE for the standard conform web pages. That way most users would not complain, since they are used to downloading plugins anway.
You dont know Microsoft my friend. That has been their tactics since the mid eighties. They call that embrace and extend a standard. Which is the standard way for them to take over existing standards.
First they follow the standards, then they start to extend them with Microsoft only stuff, then they add bugs to their implementations which they never fix, and in the end you have to do twice the work, once for Microsoft which by then usually has the significant market share and once for the rest of the world which still follows the standards. If you just follow the standards then you get the heavy beating of the users. Most people simply due to cost reasons then do Microsoft only versions and basically cement the monopoly of Microsoft. This is not done due to lazyness but often due to cost reasons.
The last step of this approach is to take over entirely, close the standard, break it in every possible way and put NDAs patents etc.. on it so that nobody outside of the Windows world really can use it.
This tactic has worked with SMB so far, Corba was another thing, OpenGL as well which basically was the base for the first really usable Direct3d version. With HTML Microsoft already has started to do it by not implementing a properly working CSS1 and totally ignoring CSS2 and 3.
They already work on a closed replacement called Xaml which should by pushed by not doing anything they speced themselves in the W3C. They already broke SVG with an incompatible implementation which they called differently and plasted with patents although only a few commands are broken, and the next step on this road probably will be the breaking of the newly specified open document format.
Kerberos was such an issue as well, they added a few bytes to the standard implementation and put everything under an NDA.
So what does this say to you. Dont expect anything from Microsoft, and the last you can expect is some decency and goodwill regarding the usage of standards, they only follow standards as long as they have less than 30% market share.
Also dont expect anything from your users, the average user is not aware of this whole mess caused by them, they just want things to work, the problem is they most of the times want to work with half working soft which has nice UIs and the tag of microsoft on top of it.
Which basically means you run constantly into problems and cannot move towards working alternatives.
If I count all the time together in the last 10 years, I probably have spent around 30% of my working time to navigate around problems Microsoft deliberately has caused and never fixed. The percentage probably would have been much higer if I had not used java and other cross platform stuff in the last few years, which normally just works.
And I am probably not the exception, count towards all developers in the world which have to deal with Microsoft platforms and the problems caused by them and you probably end up with the sum Microsoft has in the bank calculated from the loss of worktime over their deliberate breaking of standards.
So in the end my conclusion is that lots of the earnings by Microsoft are basically indirectly drained from the worktime of others to bypass their monopoly game on the technical side to make things work again. This is not a false conclusion since their non standard conformity tactis have been used by them since the mid eighties on a regular base.
Actually the push button deployment technology exists, it is java webstart...
Actually technically spoken, the weird old lady is not really german, not more than the average french or english is... Her family was german two generations ago, and some other relatives still are, but she is not. Those are typical family stories of every european family...
No language can cover a bad programmer... But the difference between a checked case and an unchecked case is, that in the checked case you at least are forced to make the mistake, in an unchecked case, the exception which might be thrown here might fall flat on your face at a part which could be critical and could take down everything. If the programmer decides to swallow an error, than it is up to him, it is not like he would not have known that this part causes the error. Sorry, but if you ever have been into a medium sized system of a few hundred thousand lines of code, you will appreciate the safety net of checked exceptions compared to the trapdoor of unchecked exceptions every minute you code.
Actually checked exceptions are a good thing, sorry to say that. A checked exception basically forces you to do something. The main problem unchecked exceptions have is, that they fall on your head at code parts you would never expect them to occur and thus take your program with you. One of the main reasons why java programs are so stable is the excessive use of checked exceptions. With every step you know which errors can occur and you are forced to do something abou it. The downside of this is, that you basically have 20% more code which is dedicated to error handling at the stages the error can occur.
Well.. my Mac Mini got its fair share of use... it simply is a homeserver and does lots of other jobs. Currently it hosts SVN, a mailserver a database and other stuff and besides that it serves me the files via samba... If your people could not figure out how to use a computer (because things look different) then they should stay away from computers at all, after all the mac mini is just a general purpose computer and you can do pretty much the same things with it as with a PC.