osmo-st-* projects

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

Harald Welte laforge at osmocom.org
Wed Nov 4 19:55:22 UTC 2020


Hi Mykola,

On Wed, Nov 04, 2020 at 03:02:05PM +0200, Mykola Shchetinin wrote:
> The question out of curiosity. Hard to not notice quite a few of
> projects written in Smalltalk.

:)

> Why was cellular network implementation in Smalltalk abandoned?

Holger Freyther, a key co-developer of OpenBSC from the very beginning,
and later many other Osmocom projects, had (has?) a particular interest
in develping in Smalltalk.  He was doing related developments on contract
of a customer who also seemed to have an interest in Smalltalk.  As Holger
has unfortuantely (mostly) departed from Osmocom a few years ago.  To the
best of my knowledge, there never formed a larger developer community around
them.

> Or was everything in C initially and you just tried out Smalltalk as a
> possible alternative? What was your thinking back then?

You'd have to ask Holger specifically for that.

> P.S. of course, I see some stuff in Erlang as well, but it has an
> awesome Diameter support which kind of answers a similar question but
> related to Erlang.

The Osmocom Erlang projects also have had a similar fate than the smalltalk
ones, at least as far as I can tell.  I became intereted in Erlang at some
point, and still think it is an awesome environment specifically for the
telecom problem domain in which Osmocom works.  For sure all of the control
plane stuff could be done very well in Erlang.

Unfortuantely, beyond the original company / use case, the Erlang code never
really got more users, or contributions, and hence it sits there and bit-rots.

Meanwhile, all of the paid contract development that sysmocom is doing is
*always* around the existing C-based implementations.   Particularly as we are
already very late in terms of 2G technology, nobody will set aside resources
to re-write something reasonably complex like OsmoBSC or OsmoMSC in Erlang or
any other programming language.  It would be spending man-years of work
just to get to the functionality that already exists in the C implementation today.

So the only real chance to use other programming languages is whenever we create
something completely new, from scratch, where we don't need any of the existing
C codebase.  And that simply hasn't happened, with one very small exception:
osmo-diameter2gsup.

We might see another glimpse of Erlang in a MEGACO-enabled
next-generation osmo-mgw, but that is too early to say at this point.
Maybe it will also only be a MEGACO-to-MGCP translator in front of
osmo-mgw as we know it today.

So in retrospective, what do we learn from this?  Once you created a
significant code-base in one language/architecture, it is going to be
hard to move away from it while working in the same problem space.
There are tons of existing infrastructure  that you'd have to re-build
(msgb, tlv parser, protocol encoder/decoder libraries, VTY, ...), and as
more time passes, that amount of code that would need to be
reimplemented grows likewise.

Regards,
	Harald

-- 
- Harald Welte <laforge at osmocom.org>            http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
                                                  (ETSI EN 300 175-7 Ch. A6)



More information about the OpenBSC mailing list