About this blog:

Ego-stimulation spot. [3dGfx,Maths,AI,Coding,...]
Blog plan: no plan.
It will be an archive of thoughts, ideas, discoverings and experiences in the various fields I find intresting. That's all, nothing special but I'm publishing this stuff because mabye there's someone that could find this stuff useful... Hahaha, well no I think that's not the reason. It's an ego-stimulation site... [more about e-s]

bout me

My name is Angelo Pesce, I'm Italian and I was born in 1981. I'm currently studing at the University of Salerno. That's enough for bio. My main interests are 3d graphic research (used to be realtime rendering but now I'm much more interested in raytracing stuff), 3d graphic modelling (sometimes I play with Lightwave or Rhino), mathematics, art, music, coding, demoscene. I'm not good in every field, but I'm curious, I enjoy learning new things.
Philosophically I'm an atheist and a mechanicist.


Math world
3d Gfx Deathfall
Grafica obscura
Karl sims evolving creatures
Photography - Man Ray
Graphics research
Mozilla browser
Demoo scene
many other things...

Hacker Kulture
Microsoft C# and CLR
Microsoft directX
Microsoft Messenger
mIrc scripts
almost everything...


July 2003 / August 2003 / September 2003 /

Using blogBuddy

Powered by Blogger Pro

Feedback by backBlog


thi s i
  menge r  
  spong e    
Blasphemus (latin): blasphemer, [adj.] reviling



                                .Monday, September 1
Last Lisp Post (I hope), the functional language Scheme, static typing and other rants.
It has been quite a long time since my last post. I would like to say that I've enjoyed a long summer holiday, but that isn't true. I've just been idling most of the time. [Update: my holiday is over and I don't have a girlfriend anymore. Not much pain at the moment, we'll see what it has to happen next]. No work for my thesis (I don't know for sure if I can do what I planned to do), no graphics work, almost no programming, not much reading (just a Leibniz and Von Neumann bio by "le scienze" and a few of the usual graphic research papers). I've started another blog, it's in italian and its truly about random, non-technical trougths (read "bullshits"). Mhm, no maybe it's more some kind of sociological experiment on how people are attracted by bullshits, but I do think that you have to believe in what you write to be really influencing so I might fail. By the way, I've discovered more about lisp, but not everything is pleasing. The first thing I have to talk about it's Scheme, one of the two major Lisp dialects still in use (the other one is Common Lisp). I've found a good tutorial for it but also its specification is quite readable (one of the major features of Scheme is its compact and orthogonal definition). Scheme is quite popular too (sourceforge hosts 158 scheme projects versus the 261 lisp ones), but to say the truth it's mainly used as an embedded extension language (the gnu extension language guile is based on scheme for example). Most CL advocates will tell you that Scheme is only good as an educational language, lacking a good library and striving for minimality. Don't listen to them, while it's true that most commercial development tools are built for CL, Scheme is actually quite good. You just have to use an external library like SLib and you're ready for real development. Scheme also has quite good compilers (check out bigloo, it has a score of 730 vs 734 of CmuCL Lisp compiler on CLS) but it's true that CL ones are still a bit more advanced (I really like CmuCL and its spinoff SbCL with their type inference system and good optimizer). What I like most about Scheme is that's actually what CL had to be (in my humble opinion). It has all the elegance and power of a Lisp language (with some extensions over CL) and it has a clear, elegant, coherent function library (I love the ! and ? convention of side-effecting constructs and
predicates). CL instead (to maintain backward compatibility with older lisp) is all clobbered with strange function names, and it's really hard to learn its library or to find the right function when you need it (even if you really "fell" that such function should be there). While CL advocates say that's hard to have such elegance and a complete, real-world, production system, SLib is clearly an example of the opposite (and actually SLib is more complete than the standard CL library too, and it's almost as cross-plattform as it is). So is Scheme the "perfect language"? I have to say, no. It completelly lacks (as far as I know) any form of static typing (while it's just hard to do it with CL) nor do compilers support it (again, afaik), its core is really too minimal (according to the specification for example an implementation needs only to have floating point numbers and there's no defined code-data equivalence) and while almost every Scheme compiler supports all the optional features (and many of them extend the language too), the fact that they aren't required is a clear problem for cross-plattform development. But for me the "static typing" question is the most important one, I do believe that's needed for a robust language for "real world" development. I've talked of this issue with a lisper that was helping me with my GP system and he tried to explain me that static typing was just unuseful. You had only to replace them with dynamic type checks, and then do the correct action if a wrong type was found (for example, throw an exception). I don't want to talk about the performance issues there because Lisp doesn't care much about performance, and maybe we shouldn't too, computers are fast enough nowdays. But that stuff still seemed like saying "To avoid bugs in Lisp code, just write bugless code". Now it's true that writing bugless code is easier in lisp than in other languages, and it's also true that's easier to check if a single function is well written or not. But this doesn't mean that static (compile time) checking is not good and it doesn't make it less useful. Also it's easier, cleaner and faster to use it instead of dynamic type checking, when all you really want is it. It's like the imperative versus functional style debate, it's true that functional one is more powerful but when all that you really need is a "simple" imperative function, then it's good to have a way to do that (and lispers do know that, they actually use a lot of imperative constructs, and they keep the functional elegance by keeping functional "interfaces" and using imperative code just inside single functions). By the way, debugging in general seems to be harder with functional languages than with imperative ones, just because you can't sit and watch how your function modifies the global environment step by step. But maybe that's only my problem, because I'm mostly and imperative programmer, and because most lisp implementations are not as good VisualStudio :) Also debugging alone does not matter, you have to benchmark the entire development process, and I doubt that here functional languages loose.
Ok, enough for now, there's just some time for the "other rants" I've promised in the title. I have experienced various different computer communities now. Graphicians, demo coders, sceners, programmers, amiga fans, c64 enthusiasts, linux users, java programmers, and so on. I'm very curious, and as I can't learn everything from the web or from the books I take from my university, I just happen to annoy people here and there searching for help, hints, links or just for talking. While doing that I have observed a trend. An obvious one I admit, but it's still worth some words. The trend is "frustrated communities tend to be angry ones, angry communities tend to be closed ones, closed communities tend to damage their product". Amiga users where angry because PC was considered worse than their pupil, and still was the market leader. Guys on the italian amiga irc channel used to ban me just because I joined with a PC, even if I were and am a big amiga demoscene fan, and if I know "enough" about amiga itself. I think you've got it. Lisp users are angry, they fell that they have the best of all languages, but people just don't seem to want to use it. At least that's my experience, maybe I'm wrong, and I'm not talking just of irc guys. Will that improve the language? Spread it more? And as they think they got the best language, they are also pretty radical. Java is bad. C++ is bad. ML is bad. But also Scheme is bad for CL fans, and what about the new lisp-like languages (check out arc and goo)? Now we can't say anything, but when they are finished, they will be bad. If you want to enjoy elitness without having to be "pure", join #c-64 (ircnet) and tell them that you're trying to learn 6510 assembly with Vice and Dasm on a Windows XP box. Most of them will still help you.


I hate web design. I hate web design. Made with Macromedia DreamWeaver MX. Web design hates me. Tested with IE and Mozilla under WinXP@1280x1024. I hate web design.