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

Welcome to IWETHEY!

New Typing about typing

In [link|http://z.iwethey.org/forums/render/content/show?contentid=87094|this post], [link|http://z.iwethey.org/forums/render/user?userid=28|CRConrad] decided to provoke Ovid (me). I am provoked :)

\r\n\r\n

Regarding the subject of namesake, while my full legal name is "Curtis Allen (sic) Poe", my two favorite poets are Ovid and John Davidson and I wanted a username to reflect this. The problem with the latter name, aside from the decided lack of "kewlness", is that people might mistake me for [link|http://www.johndavidson.com/|white bread boy].

\r\n\r\n

As for your comment about being a strong-typing-and-binary-compilation "bigot", I have to rise to the bait. Since getting flamed is a rite of passage, I gots to gets me asbestos undies and fall into your fire pit.

\r\n\r\n

I immediately think of an incident where Randal Schwartz was at a function where both Java and Perl were being discussed. This was at a university and Randal was taking questions from the audience. One student (the sort who probably doesn't understand why he should look both ways before crossing a one-way street) asked Randal how he dealt with Perl's lack of strong typing. Randal replied "I just smile and move my programs into production before the Java programmer has his first compile".

\r\n\r\n

Regarding binary compilation: so what? What are you gaining? If you say "hiding source code", debating you is probably as productive as arguing religion with an evangelical Christian :) If you say "performance", I'll respond "If the program is fast enough for the end user, it's fast enough, period." If you choose a language because it compiles to a binary, this strongly suggests the dangers of premature optimization ("Every program must be compiled to a binary because they'll all run faster!").

\r\n\r\n

We routinely write Python programs that run on a user's desktop and the user would never realize that he or she is using a non-compiled language. These applications are as responsive as native Windows apps and blow Java out of the water. How? Because we use wxPython. That's written in C++. The parts that need to be fast are written in a faster language. The rest of the app doesn't need that sort of performance, so we've elected not to spend seven times as long writing in a "compiled" language when there's no reason to do so. As a result, we produce products fast, we save money and our customers are happy. If we had elected to write out desktop apps in Visual C++ or Java, we'd already be out of business.

\r\n\r\n

Mind you, I don't argue that everything should be dynamically typed. If you're doing bin inventory and you try to add 7 apple objects to 8 orange objects and you actually get 15 objects as a result, what type are they? Are they superclass (Fruit) objects? If you want the sum total of Fruit, that's okay, but it's probably not what you want. Comparing apples and oranges ain't gonna fly for an inventory system (ask any grocery manager and he'll agree, if if he's not sure what the hell I'm talkin' about). In other words, use types if you need vectored data (is that really a term? I'm not sure). Admittedly, strong typing will prevent me from adding an apple to an IP address, but if I'm trying to do something that stupid, strong typing is the least of my problems.

\r\n\r\n

(I'll skip blathering about performance one can gain from strong typing. See my comments about compiling)

\r\n\r\n

Cheers,
\r\nOvid

"If I heard a voice from heaven say 'live without loving',
\r\nI'd beg off. Girls are such exquisite hell." -- Ovid
New Re: Typing about typing
Wow, Perl people are weird :)

Ever go metaphysical, like Rilke or Stevens? Or even Cummings?
-drl
New Re: Typing about typing
Nope. I'm pretty much a fan of the Victorian poets and Ovid. Can't explain it any more than that!

And yes, we're weird. Where else would you find a module ([link|http://search.cpan.org/author/OVID/Acme-Code-Police-2.1828/|Acme::Code::Police]) that checked to see if the programmer enabled the pragma that forces him to predeclare his variables and, if he didn't, deletes the program? However, someone else got cheeky and wrote [link|http://search.cpan.org/author/GMCCAR/Acme-Code-FreedomFighter-3.1416/|Acme::Code::FreedomFighter] which looks for my module and disables it.

I've toyed with the idea of writing Acme::Code::PoliceState which searches for Acme::Code::FreedomFighter, renames it to Acme::Code::Terrorist and symlinks the two.
"My mistress deceives me. So what?,
I'd rather be lied to than ignored." -- Ovid
Expand Edited by Ovid March 10, 2003, 10:37:38 PM EST
New Re: Typing about typing
Yeah I figured :) We have nothing in common - we should get along great.
-drl
New Re: Typing about typing

Yes. I'm learning a medium typed language now (java), but most of my experience in rexx, where everything is a string... well... unless you're using object rexx, where you can have collections of strings (arrays, directories, bags, yadda).

\r\n\r\n

Rexx is one of the easiest languages I've ever seen; if you've got a linux box floating around, download the IBM orexx environment for linux (free download) and give it a try. In comp.os.os2.mail.news recently, there was some yacking about how to parse out obfuscated email addresses during a discussion about how to do it right. I'm not a perl expert (nor even a newb, really), but here's how you'd do one in rexx:

\r\n\r\n

Assume that the string "jake at mail dot consultron dot ca" is in a var called email:

\r\n\r\n
email = email~translate(' at ', '@')~translate(' dot ', '.')
\r\n\r\n

though this particular construction is only possible in object rexx.

\r\n\r\n

Oh, and lest I forget...

\r\n\r\n
rexxtry charout(,('*shun*'0d0a~x2c)~copies(50))
--\r\n-------------------------------------------------------------------\r\n* Jack Troughton                            jake at consultron.ca *\r\n* [link|http://consultron.ca|http://consultron.ca]                   [link|irc://irc.ecomstation.ca|irc://irc.ecomstation.ca] *\r\n* Kingston Ontario Canada               [link|news://news.consultron.ca|news://news.consultron.ca] *\r\n-------------------------------------------------------------------
New Random comments.
Randal replied "I just smile and move my programs into production before the Java programmer has his first compile".
Unfair, of course. ;-)

I don't find Java's typing that much more onerous than Perl's wonky class syntax.

My opinions on strict typing, however, reflect a sentiment mentioned by one Jay O'Connor: "Strict typing should be learned first to protect the programmer from himself, after which he will know enough to know when to break the rules." (or words to that effect)

C++ drives me crazy. Objective C, so far, seems to have just the right amount of typing: the compiler *warns* you, but only if you are using explicit types instead of 'id'. For a final datapoint, I will add that I have been bitten a few times in Python, but not nearly as many times as I've had to squirrel around an object design to match a compiler's idea of What Is Right as opposed to my own.

Because we use wxPython.
wxPython is the bomb. I was amazed at how quickly I could put something together with it.

(I'll skip blathering about performance one can gain from strong typing. See my comments about compiling)
Note: Objective C virtual function calls (which are all of them) are only 1.5-2 times slower than regular C calls. And if you are using C++ (yes, I know... Christian will say "don't use C++ as an example of strict typing Nirvana) with inheritance, many of your calls will be vtable calls anyway, and therefore as slow as Objective C.

Ovid: As CRC noted, the forum software here will take care of the line breaks for you. <p> tags are unnecessary, and can play hell with the quoting features here. Of course, if you prefer to use them, who am I to tell you to desist. :-)
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New Alan Perlis has a great quote on typing systems
It is better to have 100 functions operate on one data structure than 10 functions on 10 data structures.

For other quotes of his, see [link|http://www.cs.umd.edu/users/acha/epigrams.html|here].

Cheers,
Ben
"good ideas and bad code build communities, the other three combinations do not"
- [link|http://archives.real-time.com/pipermail/cocoon-devel/2000-October/003023.html|Stefano Mazzocchi]
New perhaps waaay out of my depth but WTF
It is better to have 100 functions operate on one data structure than 10 functions on 10 data structures.

It is better in my mind to have 10 threads striping ten data structures than a slow monolith.
key:name:address name.address
key:course course
key:location:instructor loc.instruct
query where do I show up for class
thanx,
bill


will work for cash and other incentives [link|http://home.tampabay.rr.com/boxley/resume/Resume.html|skill set]

questions, help? [link|mailto:pappas@catholic.org|email pappas at catholic.org]</br>

"If you want to meet a group of people who have a profound distrust of, and hostility toward, our legal system, don't waste your time on political radicals; interview a random selection of crime victims, and you will probably find that they make the former group look like utopian idealists by comparison." Dave Robicheaux
New Don't forget
Mostly not written for threading systems; most unices don't thread, and the ones that do suck at it.

Also, while it might be better from a raw machine performance standpoint, from a programmer productivity standpoint it's a lot better to have all the functions work similarly on similar things. In the past, cycles were more expensive than labour, but that's not been true for a long time now.
--\n-------------------------------------------------------------------\n* Jack Troughton                            jake at consultron.ca *\n* [link|http://consultron.ca|http://consultron.ca]                   [link|irc://irc.ecomstation.ca|irc://irc.ecomstation.ca] *\n* Kingston Ontario Canada               [link|news://news.consultron.ca|news://news.consultron.ca] *\n-------------------------------------------------------------------
New example probably useless
get a database with infinite fields encompassing every known factoid ever with a sql statement defining infinate fields as compared to databases limited in fields to specific detail.
Which will run faster, a query based on small subsets of small tables assembled for a unified report or a search that includes all records everywhere with substrings.
thamx
bill
will work for cash and other incentives [link|http://home.tampabay.rr.com/boxley/resume/Resume.html|skill set]

questions, help? [link|mailto:pappas@catholic.org|email pappas at catholic.org]</br>

"If you want to meet a group of people who have a profound distrust of, and hostility toward, our legal system, don't waste your time on political radicals; interview a random selection of crime victims, and you will probably find that they make the former group look like utopian idealists by comparison." Dave Robicheaux
New "better" refers to programming flexibility
Computers are fast enough that for most things, micro-optimization is simply not needed. In which case what you optimize is programmer time and flexibility. And Alan's claim is that that is optimized by having many small functions that you can put together in flexible ways.

While Alan was talking about Lisp versus Pascal, you can see the same principle at work in the Unix toolset. The Unix toolset has many small tools (cat, diff, sort, grep, ...) for dealing with text that can be put together flexibly. What you can do with this is far more flexible and powerful than having many different kinds of data, each of which you can only use specific functions on.

Which is the problem that [link|/forums/render/user?username=admin|admin] complains about with IDEs that keep all of the code in a disk image. Before long you want to do all of the things that you are used to using the file-based Unix toolset for, and you can't because the datatype is wrong. So now you have to reinvent and relearn the toolset, which is a lot of work just to get where you already were.

Many small tools that can be put together in unanticipated ways beats having to reinvent the wheel for each datatype. (Until, that is, the deficiencies of your datatype rears its ugly head. For instance how many shell scripts break when encountering files with returns within the name of the file?)

Cheers,
Ben
"good ideas and bad code build communities, the other three combinations do not"
- [link|http://archives.real-time.com/pipermail/cocoon-devel/2000-October/003023.html|Stefano Mazzocchi]
New ICLRPD
Admittedly, strong typing will prevent me from adding an apple to an IP address, but if I'm trying to do something that stupid, strong typing is the least of my problems.
===

Implicitly condoning stupidity since 2001.
New Re: ICLRPD
What does "ICLRPD" stand for?
"If I heard a voice from heaven say 'live without loving',

I'd beg off. Girls are such exquisite hell." -- Ovid
New I see an LRPDism.
The funky little sayings at the bottom of every page here are collected from works of literature, songs, and the musings of the oddball crew that we have here.
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New See that red starburst looking thing next to new posts?
That's the Little Red Plasma Dot. Each new post yields a new LRPD. At the bottom of each page is a fortune-like thingy called a LRPDism (commonly pronouned "lerpadism" [except by Linus who {it seems} pronounces it *mumble*]). Many of the LRPDisms come from posts here or in the jabber. (You know about the jabber, right?) "ICLRPD" is then an indication that IC(see) something that should become a lerpadism.

Gad, I'm pedantic today.

Umm, I think it's time for a FAQ in the guidelines ... (Yeah, I know, "So write one then." Sure, in my free time.)
===

Implicitly condoning stupidity since 2001.
New ObSoWriteOneThen:
You knew I was just going to repeat that, right...? Right?
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New I believe that's a sign of obsession
When you just can't miss an opportunity to belabor the obvious.












As I've just done ... crrrrap.
===

Implicitly condoning stupidity since 2001.
New Oh... NOOO... ObLPRD: Inside!!!
What? You're not me? I'm sorry, I can't talk to you. Put me on the phone instead.


and whilst editing this:
YOU are gonna lecture ME on 'clear prose'?
b4k4^2
[link|mailto:curley95@attbi.com|greg] - Grand-Master Artist in IT
[link|http://www.iwethey.org/ed_curry/|REMEMBER ED CURRY!]   [link|http://pascal.rockford.com:8888/SSK@kQMsmc74S0Tw3KHQiRQmDem0gAIPAgM/edcurry/1//|ED'S GHOST SPEAKS!]
[link|http://www.eweek.com/article2/0,3959,857673,00.asp|Writing on wall, Microsoft to develop apps for Linux by 2004]
Heimatland Geheime Staatspolizei reminds:
These [link|http://www.whitehouse.gov/pcipb/cyberspace_strategy.pdf|Civilian General Orders], please memorize them.
"Questions" will be asked at safety checkpoints.
     Typing about typing - (Ovid) - (17)
         Re: Typing about typing - (deSitter) - (3)
             Re: Typing about typing - (Ovid) - (1)
                 Re: Typing about typing - (deSitter)
             Re: Typing about typing - (jake123)
         Random comments. - (admin)
         Alan Perlis has a great quote on typing systems - (ben_tilly) - (4)
             perhaps waaay out of my depth but WTF - (boxley) - (3)
                 Don't forget - (jake123) - (1)
                     example probably useless - (boxley)
                 "better" refers to programming flexibility - (ben_tilly)
         ICLRPD - (drewk) - (6)
             Re: ICLRPD - (Ovid) - (5)
                 I see an LRPDism. - (admin)
                 See that red starburst looking thing next to new posts? - (drewk) - (3)
                     ObSoWriteOneThen: - (admin) - (2)
                         I believe that's a sign of obsession - (drewk) - (1)
                             Oh... NOOO... ObLPRD: Inside!!! - (folkert)

I have this theory about the Brontosaurus...
219 ms