3 ms·
> Scaling ... I would want to see more than just 3 or 4 sites that have scaled well. Three or four seems to prove the feasibility. > hiring - will I be able t
by herdrick 19y ago
> Scaling ... I would want to see more than just 3 or 4 sites that have scaled well.
Three or four seems to prove the feasibility.
> hiring - will I be able to find talented people to work on the codebase?
Yes. The people you find who hack Scheme or Common Lisp tend to be very talented. If you want to ramp up to 1000 programmers quickly, yes, you would have trouble getting experienced people. But if you're doing a startup, no sweat. Or so I think so far; watch this space.
> libraries
PLT Scheme and Common Lisp actually have big libraries, though not as huge as Java's. In most cases, though, the equivalent library in Scheme (and CL, too, I imagine) is much better than it's Java counterpart. Find me something in Java that is half so good for parsing HTML as this: http://www.neilvandyke.org/htmlprag/ http://www.neilvandyke.org/htmlprag/
There are Scheme/Lisp hubs that aren't startup hubs. Salt Lake City would be one. More generally, if everyone in your town uses Java, move.
- pchristensen 19y agoI didn't know that about SLC. Good to know. The Scheme/Lisp hubs I know are NYC, Boston, and especially Montreal. Lots of research, open source, and startups using Scheme in Montreal. http://www.pchristensen.com/blog/lisp-companies/ http://www.pchristensen.com/blog/lisp-companies/
- herdrick 19y agoI've heard that about Montreal. Those French - ever tasteful, non? Salt Lake because of U of Utah: http://www.cs.utah.edu/plt/ http://www.cs.utah.edu/plt/
- Psyonic 19y agoMatthew Flatt is a professor at the University of Utah, and one of the main developers of PLT Scheme right now. I just finished his Programming Languages class, which is taught in Scheme, and am currently in his Functional Programming class. I've really started to enjoy Scheme, and functional programming in general.
- Tichy 19y agoWhile we are at it, I was really disappointed when I saw the hashtables in MzScheme. Sorry, but compared to Java they seem quite unelegant, there are not even iterators (though I guess it would be easy to provide them). Maybe there is no better way to do it without objects, I don't know (I am not so well versed in Scheme yet). I just wonder if there are better "collections" than that for MzScheme, somewhere. I know it is nitpicking, but ultimately it is about trust, while I am learning: do the implementors of MzScheme have a sense of good style, or not.... Maybe I am just spoiled by having lived in an object oriented world for too long, but it also seems to me that sometimes OO makes sense, simply as a way to structure the code. Also I think it is neat how in Java everything has a "toHashcode" method, so you can store everything in a hashmap - how does it even work in Scheme (haven't studied it very close yet, I admit)?
- rkts 19y agoFunctional programmers tend to avoid iterators since they aren't referentially transparent. Instead, operations on collections are expressed with higher-order functions that map or fold some function over each element. If you need a first-class "conventional interface" to sequential data, the preferred structure is the linked list. Hash tables in functional-style languages often let you specify a hash function. That means the hash function is a property of the collection, rather than the objects in it. If you prefer a more "object-oriented" design, you can use an object system such as tinyclos to define a generic hash function. But Schemers usually like to avoid such complexity. Looking at the PLT documentation, I see that its hash tables don't let you specify a hash function. That's definitely a shortcoming, though arguably not a serious one in practice. SRFI 69 gets this right.
- Tichy 19y agoThanks for the info! I definitely prefer the map or fold approach, however, the MzScheme has a (give-me-next-element n)-approach, which I didn't like at first sight. I will check out the references you gave (tinyclos etc).