IWETHEY v. 0.3.0 | TODO
1,095 registered users | 1 active user | 0 LpH | Statistics
Login | Create New User
IWETHEY Banner

Welcome to IWETHEY!

New So what is wrong with your favorite language?
Fave programmer question - so what's wrong with your favorite language? The wrong answer is "nothing".

Right now PHP is my favorite language, since Cold Fusion and ASP are my other choices. If I had total freedom to pick a platform I would be using Delphi or Smalltalk, possibly Ruby, but those are way outside the actual use curve.

1. It takes an excessive amount of care to not create security holes in PHP code. There are some things the language can not easily take care of for you, but PHP has some things it should take care of and doesn't.

2. Most hosting services run outdated versions of PHP, and can different options turned on and off. Since the stuff I'm working on now is usually being hosted by somebody else the task of creating a library of useable and secure functions is greatly complicated.

3. There are differences between the Windows and Unix runtimes that can trip you up. I don't mind the obvious file paths are different problem, that is to be expected but there are also a few built in functions that exist on only one platform or the other and a few that work differently.

4. The language space is quite messy. There is no consistant naming standard used and there are often multiple, trivial variations of the same function. PHP doesn't have any namespace either, which can complicate projects.

5. The built-in email function is obscure, difficult to use and differs between windows and Unix. This would rank even higher except there are several good replacement libraries you can get.

Jay
New The ones I get to code in? Or the ones I'd actully want to?

------

179. I will not outsource core functions.
--
[link|http://omega.med.yale.edu/~pcy5/misc/overlord2.htm|.]

New You pick



"Whenever you find you are on the side of the majority, it is time to pause and reflect"   --Mark Twain

"The significant problems we face cannot be solved at the same level of thinking we were at when we created them."   --Albert Einstein

"This is still a dangerous world. It's a world of madmen and uncertainty and potential mental losses."   --George W. Bush
New Well then, I'd nominate Smalltalk
And the things that are wrong with it are:

- unit tests are needed too much. I love unit testing, but in Smalltalk unit tests are needed for things that a strong-typed language would verify compilation-time.

- the language is too tied to its environment. It gives a lot of benefits, but precludes me from using my favorite tools (I am thinking emacs here)

- integrated nature of the language/environment makes shipping software a pain. It's extremely hard to be sure that you picked all the changes in your environment that are needed for running your code, and excluded all changes that are there for other projects or simply for your convenience. The most foolproof way seems to be shipping the entire image, after sanitizing it.

- the environments still have amazing number of bugs, for such mature tools.

- If I really coded more in Smalltalk, I would probably have more complains about the runtime library. As it is, the GUI dev tools are not too kind to custom graphics - standard forms are far better supported. I won't even mention the criptic world of Morph. In any case, if somethiong is missing in the runtime library, it can be easly added by the developer.


The language itself draws no critique from me because there is so little of it. Smalltalk has almost no syntax. I would appreciate standard mechanism for decalring accessors the way Ruby does it. But I can live without, or make it up.


------

179. I will not outsource core functions.
--
[link|http://omega.med.yale.edu/~pcy5/misc/overlord2.htm|.]

New Side note on Unit Testing
- unit tests are needed too much. I love unit testing, but in Smalltalk unit tests are needed for things that a strong-typed language would verify compilation-time.

Really? I do a fair amount of TDD programming in both Java and Ruby, and I write about the same number of unit tests in either language.
--
-- Jim Weirich jim@weirichhouse.org [link|http://onestepback.org|http://onestepback.org]
---------------------------------------------------------------------
"Beware of bugs in the above code; I have only proved it correct,
not tried it." -- Donald Knuth (in a memo to Peter van Emde Boas)
New Ditto, but s/Ruby/Python
Unit testing may point out a few typing failures, but there aren't any more tests required because of it.
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New I write more in Smalltalk
And the method unit tests are frequently found as a one line comment of the method that you just select and "inspect it" or "debug it".

OTOH, I don't do a lot of SUnit testing (should probably do more) because its a drag to go make the subclass and build the methods and write the asserts, etc.

One day, there will be some nifty tool that will take these comments and make them into proper SUnit classes. But not today.

OTOH, I really like coding in the debugger.



"Whenever you find you are on the side of the majority, it is time to pause and reflect"   --Mark Twain

"The significant problems we face cannot be solved at the same level of thinking we were at when we created them."   --Albert Einstein

"This is still a dangerous world. It's a world of madmen and uncertainty and potential mental losses."   --George W. Bush
New I think that context is a horrible idea in Perl
I have other complaints, but that is my biggest.

Unfortunately the trend seems to be towards overloading context more, not less. :-(

Ben
I have come to believe that idealism without discipline is a quick road to disaster, while discipline without idealism is pointless. -- Aaron Ward (my brother)
New I suspect many of my opinions are well known
as I haven't been exactly shy about sharing them.

My current fave development environment is Squeak (language Smalltalk).

Squeak has a lot to recommend it, however the UI library is definitely not one of them. Morphic is awful, the api's are very crufty, much of it left over from building etoys (see [link|http://www.squeakland.org|http://www.squeakland.org]) on top of it.

A lot of refactoring could help. I think traits will likely make it into the language in the next year and that will probably simplify a lot of the inheritance structure of stuff like the streams and collections libraries.

Squeak is image based - this has a lot of pluses, but the minuses are
1) It is possible to put the image into a state where it simply no longer works, then you have to build a new image.
2) Loading packages can produce all sorts of library conflicts. There is no mechanism to cleanly roll back a package load. Once a method is overwritten, its not restored on package unload (the good part is that Smalltalk's store each incremental change in a change log, so even if you completely hose yourself and crash, it is possible to recover your changes).
3) It is difficult to create a minimal image that only has what a given program needs to run. There is hope coming from the spoon project though. ([link|http://netjam.org/spoon|http://netjam.org/spoon]).

Other annoyances
- Not enough database interfaces available.
- The VM has a green threads implementation so having a multiple processor box doesn't help at all.
- I'm not too fond of the current collection of methods available on String, however, its easy to add more.
- No unicode support (yet - getting close).
- Blocks are not full closures in Squeak (there is an implementation, but it is not in the standard image). There are workarounds to make them act like closures but real closures would be better.
- Squeak has a zillion packages to do all sorts of nifty things - but they were written by very smart people who found it interesting to write such a thing and once it works they lost interest. Thus, you often have to do your own bullet proofing.





"Whenever you find you are on the side of the majority, it is time to pause and reflect"   --Mark Twain

"The significant problems we face cannot be solved at the same level of thinking we were at when we created them."   --Albert Einstein

"This is still a dangerous world. It's a world of madmen and uncertainty and potential mental losses."   --George W. Bush
New Way too early for my candidate
Spend my hobby time working with Alice ML, but Version 1.0x just came out, so there's not nearly enuf libraries.
New Positional, limited variable names and booleans
and worst of all, the best feature of the language is becoming more and more obscure as programmers adept in C, etc. are called on to program in it. They don't understand it, don't bother learning it, and then try and code as if it's a different language (C, etc).

I've said it before, I'll say it again - the RPG cycle is a beautiful thing. The programming world will be a darker place when it's been deprecated out of existence.
[link|http://www.runningworks.com|
]
Imric's Tips for Living
  • Paranoia Is a Survival Trait
  • Pessimists are never disappointed - but sometimes, if they are very lucky, they can be pleasantly surprised...
  • Even though everyone is out to get you, it doesn't matter unless you let them win.


Nothing is as simple as it seems in the beginning,
As hopeless as it seems in the middle,
Or as finished as it seems in the end.
 
 
New Agreed
The RPG cycle is slick.
Darrell Spice, Jr.                      [link|http://spiceware.org/gallery/ArtisticOverpass|Artistic Overpass]\n[link|http://www.spiceware.org/|SpiceWare] - We don't do Windows, it's too much of a chore
New OK, explain the cycle to the ignorant masses here (new thread)
Created as new thread #204483 titled [link|/forums/render/content/show?contentid=204483|OK, explain the cycle to the ignorant masses here]



"Whenever you find you are on the side of the majority, it is time to pause and reflect"   --Mark Twain

"The significant problems we face cannot be solved at the same level of thinking we were at when we created them."   --Albert Einstein

"This is still a dangerous world. It's a world of madmen and uncertainty and potential mental losses."   --George W. Bush
New Python...
The Global Interpreter Lock.

Lack of decent frameworks... there's tons of stuff out there, but most of it suffers from either "not enough care" or "too many cooks" or "WTF... you guys need to document this shite" syndrome.

No central code library, and a lot of stuff needs C compilation for installation.

Wonky closures, which are actually being removed (le sigh) in favor of predefined functions (le sigh sigh).

Some other more minor problems, but those are the more irritating ones.
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New Closures are being removed?
New Lambdas, actually.
It's been proposed very seriously.

[link|http://www.artima.com/weblogs/viewpost.jsp?thread=98196|http://www.artima.co....jsp?thread=98196]
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
Expand Edited by admin April 22, 2005, 04:30:55 PM EDT
New Yes; that bites.
map, filter, and reduce I can do without; losing lambda, however, would not be fun.

Do yourself a favor and don't read the discussion about anonymous blocks going on on python-dev right now. :/
New I can empathise about PHP.
...since I use for my job. :-)

I agree, it does a lot of things mostly or nearly right, but a lot of things strangely or awkwardly. The top of my list is basically that some of the syntactic sugar is not "sweet enough": the array( ) notation is clunky; there is a useless difference between a variable that's not set and one that contains null; the string sub-select notation frustratingly doesn't properly support slices; things like that.

That said, I've said for a long time that my favourite language is Icon. But the biggest thing wrong with Icon is that it has been eclipsed in the marketplace by other languages that were there when Icon was not. On a more technical level, it doesn't do string scanning anywhere near as intuitively as SNOBOL4 does, which is a shame. It is also missing case-insensitive options that are so useful in REs.

Interestingly, a book I have on SNOBOL4 lists a number of things actually wrong with the language explicitly to make the point that favourite languages are favourite not because they are perfect but in spite of their blemishes!

Wade.

Is it enough to love
Is it enough to breathe
Somebody rip my heart out
And leave me here to bleed
 
Is it enough to die
Somebody save my life
I'd rather be Anything but Ordinary
Please

-- "Anything but Ordinary" by Avril Lavigne.

New Nested hash notation in Perl.
It's minging, frankly.

Actually, hash notation in general. Horrible.


Peter
[link|http://www.ubuntulinux.org|Ubuntu Linux]
[link|http://www.kuro5hin.org|There is no K5 Cabal]
[link|http://guildenstern.dyndns.org|Home]
Use P2P for legitimate purposes!
New Naw.
Array refererences - now they are nasty.

my @arr;
my %hash_of_array_refs;
$hash_of_array_refs{ref_name_1} = \\@arr;

# now to push a value on to the stack

push(@{$hash_of_array_refs{ref_name_1}}, 'value');
New Ick.


Peter
[link|http://www.ubuntulinux.org|Ubuntu Linux]
[link|http://www.kuro5hin.org|There is no K5 Cabal]
[link|http://guildenstern.dyndns.org|Home]
Use P2P for legitimate purposes!
New Compare to Ruby
\n@arr = [];\n@hash_of_array_references = {};\n@hash_of_array_references['foo'] = @arr;\n\n# Now to push a value on the stack\n@hash_of_array_references['foo'].push('bar');\n

Peter has a point. When you start getting into nested references, Perl's syntax gets unnecessarily ugly.

Cheers,
Ben
I have come to believe that idealism without discipline is a quick road to disaster, while discipline without idealism is pointless. -- Aaron Ward (my brother)
New Which is pretty much the same as Python
References in Perl are teh sukc. I want to just put a damn array in a hash. I don't want to have to worry about whether it's a reference or not. And yes, sometimes that makes certain things easier when you make a distinction based on the context, but dammit, most of the time I really don't need that. :-P
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
     So what is wrong with your favorite language? - (JayMehaffey) - (22)
         The ones I get to code in? Or the ones I'd actully want to? -NT - (Arkadiy) - (5)
             You pick -NT - (tuberculosis) - (4)
                 Well then, I'd nominate Smalltalk - (Arkadiy) - (3)
                     Side note on Unit Testing - (JimWeirich) - (2)
                         Ditto, but s/Ruby/Python - (admin)
                         I write more in Smalltalk - (tuberculosis)
         I think that context is a horrible idea in Perl - (ben_tilly)
         I suspect many of my opinions are well known - (tuberculosis)
         Way too early for my candidate - (ChrisR)
         Positional, limited variable names and booleans - (imric) - (2)
             Agreed - (SpiceWare)
             OK, explain the cycle to the ignorant masses here (new thread) - (tuberculosis)
         Python... - (admin) - (3)
             Closures are being removed? -NT - (FuManChu) - (2)
                 Lambdas, actually. - (admin) - (1)
                     Yes; that bites. - (FuManChu)
         I can empathise about PHP. - (static)
         Nested hash notation in Perl. - (pwhysall) - (4)
             Naw. - (broomberg) - (3)
                 Ick. -NT - (pwhysall)
                 Compare to Ruby - (ben_tilly) - (1)
                     Which is pretty much the same as Python - (admin)

We come here for the righteous indignation and hilarity that follows.
123 ms