freenode/#lisp - IRC Chatlog
Search
13:23:19
beach
I am working on part 3 of my presentations "Creating a Common Lisp implementation" for the online Lisp meeting. I am guessing it will be streamed next week. It won't be as "light weight" as the previous ones. But that's what it takes. There will be some Common Lisp code that we will look at together, and that I will explain as well as I can.
13:28:46
beach
Strategy 1 (that I talked about in parts 1 and 2) was about writing a small core in (say) C, and loading modules written in Common Lisp to obtain a complete system. But, as it turned out, the core had to be much larger than we had hoped. Part 3 is about strategy 2 which is to cross-compile large parts of the system code on an existing Common Lisp implementation.
13:31:04
beach
I guess if part 3 turns out to be to hard to follow for some, it can always be watched again later.
13:31:50
beach
Oh, and those who plan to attend part 3 should try to watch parts 1 and 2 beforehand if they haven't already done so.
13:49:08
jackdaniel
ah, it is nice to see Common Lisp as one of the recommended languages once in a while
13:49:28
jackdaniel
https://begriffs.com/posts/2020-08-31-portable-stable-software.html < cl is only mentioned once, but for a good reason - it has a standard and multiple implementations
13:59:01
beach
jackdaniel: Interesting. When I give talks to industry people, I always say something like "A project leader or decision maker who decides to use a language without an independent standard for some project, should be fired."
14:08:20
jackdaniel
I know, I was a bit surprised I've encountered a similar advice from a person who perfers C (and is apparently not part of lisp community)
14:17:12
beach
Sure. And, although C has a standard, it seems to be evolving regularly. So some of the advantages are lost.
14:31:48
beach
The main topic of talks where this comes up is "risk analysis", which they don't seem to know what it is, in general. And choosing a programming language should be a large part of a risk analysis.
14:44:37
mseddon
beach: for example, if you decide to write everything in coffeescript, it's entirely your fault.
14:46:22
jmercouris
hence why the message of "all of your inferstructure woes would be solved if you rewrote everything in X on this new Y framework" is so appealing
14:47:04
mseddon
and so, on cue, every decade or so we get bored, change everything and throw the baby out with the bathwater :(
14:49:27
mseddon
I'm somewhat biased, I work a lot in web development, and the churn there is insane.
14:54:18
beach
mseddon: I don't care so much about individuals who use whatever language they like for their own private projects. My talks are about ignorant decision makes who gamble with the future of the company they work for, and therefore also with the future of their staff.
14:57:06
beach
That one or his/her project leaders. I frequently see CTOs in software development who know nothing about software development, and certainly nothing about programming languages.
14:59:55
beach
I hear things like "let's choose Java because all our developers know it already", which really means that "the cost of training our developers in a different language, or of hiring developers for a better language is known to be higher than the loss of productivity from choosing Java".
15:01:06
beach
And I hear "let's choose C++, because we need all the speed we can get", which means "we are willing to spend an arbitrary amount of additional development and maintenance cost, for the tiniest speed improvement".
15:01:46
p_l
the java quote is often untrue - as in, there's non-trivial chance the developers know more and would be willing to use more
15:03:29
p_l
beach: the disconnect can be big enough that a reasonably big financial project (mobile payments for Dubai), the manager in charge *finally* understood that they need someone with C++ skills (a big chunk of the code is in C++)... despite the fact that the team was telling them that information for over a month now
15:03:30
mseddon
beach: right, and 9 times out of 10, they could have avoided C++ and used OpenCL or such for the critical performance from literally anything, such as python.
15:05:06
jmercouris
Nyxt 2 pre-release is out: https://nyxt.atlas.engineer/article/release-2-pre-release-1.org
15:05:15
beach
My point is that they may be right in their specific case, but I have yet to see a valid risk analysis that supports their claim.
15:07:43
beach
One of my favorite industry talks is entirely about the paper by Hudak and Jones: "Haskell vs Ada vs ...". That paper was written by Haskell proponents of course, but Haskell is not the message in my talk. The message is that the programming language might very well make a difference to productivity, and the difference in productivity might very well dwarf the cost of training staff.
15:11:18
p_l
beach: I might have mentioned it already, but I've heard in at least one place that a company decided to use Common Lisp *because the number of programmers was lower*
15:12:19
p_l
which is a very interesting effect impacting both productivity of the team (separate from language) and effort required from other parts of the company
15:13:53
p_l
unfortunately, it also meant that selecting actually experienced applicants was much harder task, *and* they had to deal with "over-confident fresh bootcamp grads"
15:14:56
beach
p_l: I suspect the time and energy spent filtering the applicants paid off in productivity.
15:15:22
p_l
going for Common Lisp and global recruitement resulted in smaller pool of applicant, but said pool was both easier to check, and had higher selection of actually experienced people who either already knew CL or had experience to learn it quickly
15:16:27
p_l
many "bootcamps" are very low quality, and often give inflated expectations (harming the graduates of them, IMO, who can't exactly be faulted for being essentially lied to)
15:18:00
mseddon
p_l: agreed. I have looked at quite a few of these courses, and frankly, the teachers appear to be confused themselves.
15:18:32
p_l
mseddon: I have experience with one course where it was quite obvious the teachers were grabbed without preparation
15:18:45
jmercouris
if you want a programmer, you can hire from a bootcamp, if you want an engineer, you must hire someone who has actually studied more than 1 month
15:21:01
p_l
a bootcamp graduate might be a good intake for a corporation that has proper "internal education" system
15:32:29
mseddon
It is one of those things that I always never understood. Any other engineering discipline requires accreditation. Software is unregulated.
15:33:05
mseddon
But your bridge collapsing when I drive my car over it, vs your software leaking my bank details are both pretty serious problems.
15:33:51
beach
It would be good if it required accreditation. The problem at this time, though, is that it would be very hard to choose the people who would then be charged with the task of granting accreditation.
15:36:03
beach
I have seen some presentation about this topic. Some of them have some good ideas. For example, it is time we self-regulate. Because, if we don't, then there will be some catastrophic failure, and then the politicians will step in. And then, we are in big trouble.
15:36:15
heisig
mseddon: The 'problem' is that the demand for software and programmers is enormous, so there is little incentive to become a good programmer. Contrast that with, e.g., musicians.
15:37:44
seok
sorry if I am interrupting anything, are there any ways to keep track of resources/memory a lisp evaluation is taking up?
15:39:08
beach
seok: The thread part seems impossible. If a function or a data structure is used by several threads, which thread does it "belong to"?
15:40:52
heisig
seok: You should also have a look at the future branch of clim.flamegraph: https://github.com/scymtym/clim.flamegraph/tree/future
15:41:22
heisig
This is my favorite tool for profiling. The README also describes how to use sb-sprof.
15:43:13
p_l
mseddon: the thing is, software engineering *is* accredited. It's just that a case of weasel-wording (as the proper engineer title might be slightly different than you expect) and engineer-as-role != engineer-as-person
15:44:13
p_l
mseddon: so, for example, in UK you can become Chartered Engineer in computing. This requires presenting skills regarding taking a project from start to end with all the bells&whistles, iirc.
15:44:35
p_l
and is administered and managed by British Computing Society, acting as "guild" for Engineering in IT
15:45:04
mseddon
p_l: right. but e.g. anyone can build any software that people use. one is REQUIRED to be chartered to build a bridge for public use. So the title is somewhat defanged, legally.
15:45:07
dlowe
it's not real accreditation until there are laws preventing you from working if you're not accredited
15:45:56
p_l
I've had a case where titled engineer had to sign off on things, but it was a bit BS due to how the specific title is acquired in Poland
15:46:16
p_l
dlowe: the thing is is that laws don't prevent you from working without accreditation even in civil engineering
15:46:26
dlowe
despite its relevance to lisp programmers, I'd like to take this to some other channel
15:49:38
mseddon
p_l: right, that's a good point. But at least someone is legally making themselves accountable.
15:52:45
mseddon
and hence, selected not to make terrible decisions that would either impact the company, or it's customers. or just random bystanders.
15:55:05
seok
"terrible decisions that would impact company or its customers" is rather a broad concept in programming though
18:22:07
gendl
Hi, I'm aware of a job opening which can involve some CL/GDL programming. But the main entry point is web front-end application maintenance so they are seeking 2+ years of PHP and 2+ years of JS with React or similar. Message me directly if you'd like more details.
18:23:50
gendl
Common Lisp and Genworks GDL (which is based on [gendl](https://gitlab.common-lisp.net/gendl/gendl.git) )