The Perfect Storm

In my previous post I talked about thoughts I’ve been having and a change in direction I’ve been considering.  In the three weeks that passed since writing this post I was busy researching the Clojure ecosystem for things I could use, to validate or invalidate this direction.  This felt like “the perfect storm” — ideas popping up and crashing down.  I came to learn a lot of new things and came to respect the immense amount of work done by the  Clojure community in recent years, and the deep thought that was put into this work.  Today, while I don’t yet have all the pieces figured out, I know, thanks to this community, what I want to achieve is feasible and achievable.

In this blog post I’ll capture my design ideas for what I currently call Cloudlog.clj.

Read More »

Recalculating Route

Doing a PhD is an iterative process of doing something you believe in, questioning your belief and adjusting what you do so that you continue doing something you believe in.  This is similar to driving with a navigational app.  You start with some route it calculated at first, but then some unexpected traffic starts to accumulate, and the app  recalculates route for you.  This happened to me several times so far during my PhD, and it’s happening right now as well.

Read More »

Cloudalion Monthly Report – Oct ’16

As it has been about a month since my last progress report, I decided to make it tradition to post monthly updates on progress in the development of Cedalion2, as well as in other fronts.

During September I made some progress in the development of Cedalion2, namely in implementing much of its editing logic, and made some preparations towards my participation in SPLASH 2016.  I’m dedicating this post to both topics.

Read More »

C++ is a Dynamic, Pure, Functional Programming Language

I haven’t blogged for a while.  I recently submitted a paper I’ve been working on for some time and I find it hard to “multitask writing”.  It’s like the part of my brain responsible for writing (as opposed to programming or other stuff) cannot do two things at the same time.

Apart from writing this new paper I’ve been working on presentations for the SPLASH 2016 conference, in which I’m presenting three different things (a poster, a demo about Cloudlog and a workshop paper on Cedalion).  I will write about all of those sometime before the conference.

… and of-course, I’m also working on cedalion2.  Stay tuned for updates…

But today I want to write about something completely unrelated I came across recently.  I’ve been using C++ practically all my professional life.  I learned it from a book (in Hebrew) even before I learned C…

I don’t like C++ very much.  If you learned anything from my blog so far, I’m more into declarative languages, and if they have to be imperative, I prefer those where I cannot create buffer overruns by mistake, or use an allocation that has already been freed.  But somehow my professional career went a certain way and I came to use C++ for most of it.

For most of my time working with C++ I knew there was more to it than meets the eye.  But until I went there and checked for myself I didn’t realize how cool it can be.  In this post I’ll give a taste of C++, but not the way you (probably) know it.  Most people know it as an imperative, statically typed, eagercompiled object-oriented programming language.  In this post I’ll show you why it is a declarative, dynamically typed, lazyinterpreted functional programming language.

Read More »

A New Cedalion Workbench

Yesterday I decided to go forward with an ambitious plan to implement a new workbench for the Cedalion language.  I even posted this tweet:

This move is a major one.  Up until today, the Cedalion language was inseparable from its Eclipse-based editor. With this new project, there will be two different editors capable of editing Cedalion code.  At some point, the Eclipse-based one will be deprecated and only the Web-based one will be supported.

In this post I’d like to explain this decision, including some of the design considerations.

Read More »