In the past year, I have started listening to various podcast from the “Skeptic” community. Although much of the discussion tends to center on medicine (because of the sadly enormous market for quackery) and natural science (because the sad fight over evolution), it has made me think and reflect more about the nature of science and publishing. Indeed, it would have been great if this kind of material would have been easily found back when I was doing my PhD.
I have written several times on this blog about the odd propensity of the “EDA” business to consider the C and C++ languages “high level” languages. They are what I use almost daily for most of the demo-order programming I do, but I still don’t consider them very high-level. High-level for me is scripting (Python, Lua, …) or domain-specific languages (DML, Lex, Yacc, MatLab, …) or model-driven development (UML, LabView, Simulink, …) or languages which at least provide sensible and reasonably safe semantics (Erlang, Java, …).
However, in fact, most the embedded industry and the “virtual platform” industry rely on C and C++ to get our daily jobs done. Question is, how much longer can we expect to do that? An interesting post at Embedded.com by Michael Barr brought back my argument that modeling needs to move up in levels of abstraction just like mainstream programming.
I have travelled to the United States more times than I care to remember now, starting back in 1997. Business tends to make me come here for the interesting, exciting, large events. Being here is usually a nice experience, but getting here is not. Apart from the bother of a 12-hour flight in economy class, there is the green form called I-W94.
Next week (June 7) is the election date for the EU parliament for the next five-year term. As a citizen of the EU and Sweden, I feel it is my civic duty to vote… but the quality of the election campaign so far does not exactly encourage it. As in many other EU countries, the EU and its parliament feels like a distant power hard to affect, and the EU election process tends to be more about domestic issues than true EU-level issues. Even so, there is one relevant, interesting, and burning topic that has come to the fore. Intellectual property rights and “media piracy”.
The colder season is coming fast here in Uppsala, and it is time to bring out gloves and warmer jackets. Even if we have had some nice sunny pretty warm days (up to 15 degrees Celsius!), we are getting into October soon, a month where there is usually some day of freak snow fall.
Another sign that it is getting colder is the reaction of consumer electronics.
This was a refreshingly different post: Too Many Cores, not Enough Brains:
More importantly, I believe the whole movement is misguided. Remember that we already know how to exploit multicore processors: with now-standard multithreading techniques. Multithreaded programming is notoriously difficult and error-prone, so the challenge is to invent techniques that will make it easier. But I just don’t see vast hordes of programmers needing to do multithreaded programming, and I don’t see large application domains where it is needed. Internet server apps are architected to scale across a CPU farm far beyond the limits of multicore. Likewise CGI rendering farms. Desktop apps don’t really need more CPU cycles: they just absorb them in lieu of performance tuning. It is mostly specialized performance-intensive domains that are truly in need of multithreading: like OS kernels and database engines and video codecs. Such code will continue to be written in C no matter what.
The argument at core is that multicore is about performance, and performance optimization is generally something that we do prematurely rather than focussing on how to solve the core problem in the best way. You have to respect Jonathan Edwards, and often this is true: programmers optimize themselves into a horrible design that is also slow.
In early July, Cadence announced their new “C2S” C-to-silicon compiler. This event was marked with some excitement and blogging in the EDA space (SCDSource, EDN-Wilson, CDM-Martin, to give some links for more reading). At core, I agree that what they are doing is fairly cool — taking an essentially hardware-unrelated sequential program in C and creating hardware from it. The kind of heavy technology that I have come to admire in the EDA space.
But I have to ask: why start with C?
I often listen to Leo Laporte’s “This Week in Tech” podcast. It is not particularly focused, but thanks to the quality of the participants it always enjoyable and I tend to end up learning something about general IT and general desktop computing that I did not know before. However, there are a few annoying themes that tend to pop up. One of these is the idea that traditional paper journalism and journalism in general is dead, to be replaced by smart news search engines finding “just what I need” based on my preferences. I think that idea is utterly broken. There is immense value to reading a collection of news and articles put together by someone skilled in the craft, and not just a search bot looking for stuff like what I already know and like.
Here is nice example of what such a bleak world would be missing…
Just last week I found the group “Universal Poplab“. A Swedish trio making nice pop music in a style that is quite reminiscent of classic 1980’s Synthpop. Which I happen to like. How I found it? Pure serendipity of the kind that will never happen in a world of agent-based targeted search and information. I was moving the car to the garage, and just tuned in to P3 on the radio. Where they happened to interviewing the group and played some short bits from their hits from recent years (hits that had completely gone me by, as I tend to be quite out of touch with cultural developments since we had a child a few years ago). “This is brilliant” I thought and logged into iTunes and bought a record immediately.
Without that purely random act, I probably would never have found out about them. There is so much good stuff out there hidden in enormous mass of indifferent stuff that the only really good way to get a handle on it is to let someone better informed tell you. Not some search bot. I guess this qualifies for “Rant” status.