SRL Archive - Research & Development Lounge

I know that I haven't been around for some time, but I had an idea.


Cigue

2012-12-18 14:18:34

Hello guys and girls,

Post-writing addition: this is very much a pipe dream, but I'd love for you to dream with me!

I started programming through SRL/SCAR/Simba, and lo and behold it has taken me to amazing places. I'm currently completing my second year of a Software Engineering degree, have learnt 8 programming languages since I started playing with SCAR three years ago, am interning at a security R&D firm and working on a startup enterprise project.

Since then I've had the joy of taking a tour of what technology exists in this day and age, and even though I still have fond memories of Pascal, it's unbelievably outdated. A more current language and runtime could allow huge advances in the complexity of our algorithms and data structures; it could make writing plug-ins and utilities much easier; furthermore, two runtimes (CIL and JVM) can seamlessly interoperate several programming languages.

Imagine if we could port Simba/SRL/etc. to, say, the JVM. We could write scripts in Java, Scala, Python, Ruby and Clojure (Lisp). We could leverage the enormous developper base for these languages. We could make friends and influence people. (Okay, I'm getting grandiloquent, but you get my point.)

Alternatively, we could go to the CIL and run C#, F#, VB.NET… I'm partial to the CIL because C# is generally a better language than Java, and F# is generally a better language than Scala.

As a third possibility, we could port Simba to Node.js using TypeScript language expansions for static typing. TypeScript is a brand spanking new language that gives JavaScript classes and other goodies. Node.js's engine, V8, is extremely fast and maintained by Google. There is still the problem that Node.js has no UI engine, but since it's primarily a web platform, you can easily build a web interface.

I remember writing my first large script here (Ectofuntus runner), you can find it in my members' application. It took about a thousand lines, was brittle, unmodular and generally hard to follow. That's mostly because I sucked at coding, but it's also because Pascal is verbose and limited.

Here are a couple things Pascal doesn't have that we could get somewhere else:
  • Garbage collection
  • Closures
  • Function passing
  • Objects
  • Classes
  • Built-in lists
  • Standard data representation scheme (XML/JSON)
  • Generic types
  • Lazy initialization
  • List comprehension
  • Pattern matching over tagged unions
  • Implicit static typing
  • GPU-accelerated parallel computation
  • Namespaces
  • Ternary operators

So, what do you think?

EDIT: I just found out that SMART is implemented in Java. Way to go, BenLand100 :D

DannyRS

2012-12-18 14:21:37

I'd love to one day use C# here, consider me dreaming!

Cigue

2012-12-18 14:29:50

From: DannyRS
I'd love to one day use C# here, consider me dreaming!


CIL master race represent :D my day job is in F#, it's amazingggggg

NCDS

2012-12-18 15:38:07

Be sure to check out Lape if you haven't yet, as that covers a few points you mentioned, and that's what SRL6 is being written in.

Also, I'm quite positive the majority of SRL members know and use more than one programming language, and we've had similar discussions before. There is actually an incomplete python implementation already started for Simba, though it's not been developed in some time to my knowledge. (heard something about the claw and robot1 starting that back up a while ago.)

In theory, it's great, and would be a wonderful dream, but it takes time, and 'man-power'. **hint** ;)


btw, nice to see you stop by.

Cigue

2012-12-20 11:26:16

From: NCDS
Be sure to check out Lape if you haven't yet, as that covers a few points you mentioned, and that's what SRL6 is being written in.

Also, I'm quite positive the majority of SRL members know and use more than one programming language, and we've had similar discussions before. There is actually an incomplete python implementation already started for Simba, though it's not been developed in some time to my knowledge. (heard something about the claw and robot1 starting that back up a while ago.)

In theory, it's great, and would be a wonderful dream, but it takes time, and 'man-power'. **hint** ;)


btw, nice to see you stop by.


NCDS my man, when did you pick up the mantle of MSI leader? :) I'm glad to see you're still around.

The thing you've linked (Lape) is interesting, however it remains very low-level, and since it is interpreted there is no guarantee that you'll get the speed you'd expect from a low level environment.

Anyway, from my point of view, the core job (re-implementing SRL as a library of another language) doesn't look so bad. Making the IDE to go with it, though, sounds like a lot of work. (There's always the possibility of making a plug-in for an existing IDE, however most of them are quite bloated and eschew the sweet simplicity of Simba.)

I've been ridiculously busy these few months/years, which is why I haven't popped up more often, sowwy. :( If things calm down anytime soon I'll look at doing a CIL implementation of Simba/SRL.

footballjds

2012-12-20 11:33:45

I'd love to be writing java code

In my experience if you can program in JAVA you can get a job in 10 minutes. I literally get emails from my boss, fellow employees, etc. a couple times a month asking if I know people that can program in JAVA. My one buddy that took a job at a different company is tasked to hire 100's+ of JAVA devs for a project. He said if I knew anyone that I'd get around 1000$ if they were hired. Maybe it's just where I live, who knows…

I really like JAVA as well.

masterBB

2012-12-20 11:45:24

I don't like java, but don't hate it either.

footballjds

2012-12-20 11:50:37

From: masterBB
I don't like java, but don't hate it either.


I really like the syntax
EVERYONE has java. Java on any platform. Windows languages :/

J J

2012-12-20 12:03:15

From: footballjds
I really like the syntax
EVERYONE has java. Java on any platform. Windows languages :/

I like Java but yeah.. I only consider myself to know pascal/java. Looked into a bit of .NET and read through some C#/C++.

ProoM

2012-12-29 09:59:40

Sounds great, I would love to use C# here :)