freenode/#lisp - IRC Chatlog
Search
8:07:13
shka_
so i think that in the best case scenario we will have to wait a lot longer before such studies can be conducted
8:08:15
phoe
getting input isn't really the domain of CL-WHO though, that's the domain of the HTTP server
8:08:23
beach
shka_: I don't think it will ever happen, unless some government (China? India?) decides to take action to make their citizens more productive than the compentition.
8:09:23
jedii
has there even been a competition like each team gets I dunno 7 days to make xyz webapp
8:09:37
shka_
beach: i think it may be performed via online collaboration with teams of volunteers in the future
8:10:08
jedii
China seems to not be messing around when it comes to engineering and building.....even fi some videos say they have had missteps
8:10:10
no-defun-allowed
I'd mostly be concerned with how they cope with their spaghetti code over the next 70 days.
8:10:44
phoe
jedii: that would be more of a question of what frameworks everyone utilizes to build that web app since building web apps is a well-developed problem and modern react or whatever builders allow you to slap together web apps really fast
8:12:12
phoe
it's true that you can write spaghetti code in any language, but Lisp makes code much more inspectable and debuggable due to its interactive nature
8:12:25
phoe
have you ever played around with the slime/sly inspector and debugger? or seen a video where someone does that?
8:14:55
phoe
I can only say that they're very nice to program in because the interactive programming paradigm works really well in them; I don't know about vim plugins though because I never used them
8:19:49
phoe
we try to keep #lisp strictly on topic with regard to Common Lisp, and #lispcafe is for everything else
8:23:23
pve
It seems to me that the productivity of a language could mean different things, depending on the experience level of the programmer or the size of the team.
8:37:28
pve
The scenario that is often painted seems to be one experienced programmer equipped with a "better" language (CL?) that can code circles around a team of programmers using a "lesser" language.
8:45:48
beach
pve: Some other factors are involved in that scenario. First, the literature on software engineering suggests a factor 20 difference in productivity between different developers with the same training and the same experience. Second, since communication grows quadratically with the number of members, a team with fewer members gets an advantage.
8:53:34
beach
So, a good strategy for a company would be to try to measure this difference, and then fire the half of the staff below median.
8:54:38
SAL9000
beach: maybe that's where the stack ranking methodology (which is still in vogue in some places, apparently) came from
8:56:23
SAL9000
As far as I understand, the biggest problem there is -- same as with genetic algorithms and neural networks -- measuring employee fitness objectively
8:56:59
SAL9000
That is a problem in any business, but combining subjective measurement and stack ranking seems to cause a true dumpster fire.
8:57:12
beach
Exactly. And that's how this discussion got started. It is extremely hard, certainly at the level of a company or division, to measure productivity of programmers.
8:57:53
aeth
SAL9000: another problem is that it keeps going. Assume you can fire half of the programmers. Well, next year you fire half again, even if they made the cut last time.
8:59:09
SAL9000
they have enough incoming wide-eyed graduates fresh out of uni to keep up with the churn, while the (upper) management feels somewhat secure in that they've risen above the game
8:59:46
beach
A preferable technique would be to identify low-productivity developers and give them training to improve.
9:00:13
SAL9000
assuming that those improvement plans don't become a black mark on one's permanent record, seems like a good idea
9:00:59
SAL9000
from what I've heard, in many places being placed on an improvement plan is tantamount to imminent redundancy
9:01:02
beach
SAL9000: Well, some developers deserve what they get. Like the "performance oriented" ones.
9:02:02
SAL9000
shka_: I assume that most companies would prefer to define "productivity" as "completes projects within the timeframes specified by management, come hell or high water"
9:05:25
SAL9000
Right. I do find "Students do not know how to use a debugger. Instead, they waste time debugging programs with trace output." amusing given that my current boss (loudly) espouses the exact opposite :-)
9:06:27
SAL9000
(admittedly, this is in the context of a 20-year-old C++ codebase involving a JITted custom language)
9:36:51
shka_
phoe: yes, fancy trace preserves input objects and if you are avoiding mutation you can inspect
9:39:19
White_Flame
and debuggers usually aren't that great in threaded environments, or in things where you could have I/O timeouts
9:59:16
jackdaniel
while I feel like a cave man when I'm putting (print "foo" *debug-io*) to debug a program (or break to introspect the environment with the debugger), I have to say that it gives me a good insight of how program works. I don't think that relying only on a debugger (even a superior debugger) would be as effective
15:24:17
Bike
i mean, if you have a class A and a class B, and A is a subclass of B, and x is an instance of A
15:26:08
Bike
it's the kind of thing that's in theoretical texts that aren't read by very many actual programmers :v
16:39:41
ym
Hi. When I put let-definition of array which is initialized with initial-element inside of do, I have re-initialized array each iteration. I'm sure SBCL optimizes such definition so that it won't allocate memory for array each iteration, but how do I check it?
16:44:42
Xach
ym: i don't think it's a matter of optimization, but a matter of specification - the initial-element is evaluated only once to initialize, not repeatedly.
16:45:36
Xach
you could also check by tracing the array creation (this would be easiest if you wrap array creation with a function of your own)
16:50:41
Xach
ym: Ok. I think I have misunderstood your description, then. What does the code look like, if you can share it?
16:56:51
Bike
if you replace that make-array with make-my-array, semantically break must be called each iteration
17:08:19
johnjay
question. am i supposed to type (load "~/quicklisp/setup.lisp") everytime I start sbcl?