

Ooc: new awesome language with site redesign, guide, and screencast - gmaster1440
http://ooc-lang.org

======
cageface
I'm in language overload at this point. Much more than another language I'd
like to see some creative new _architectural_ approaches to problems that are
thorny or tedious to solve right now.

I mean, if something as simple as applying MVC principles to web development
can create a revolution there have to be a lot of other unplucked ideas out
there. Software engineering feels a lot like architecture would if people
spent 95% of their time talking about materials.

~~~
stcredzero
What would a car metaphor be like? Would it be like we're all driving early
racing cars? Not everybody even has a seat, and some people are still sitting
astride cars like on a saddle? (Yes, some early racing cars are driven like
this.) Some people are still arguing the merits of a two-lever yoke over the
wheel. Others are arguing about 3 versus 4 wheels. There are people who
advocate steam engines.

The thing is, the development of the car got to focus on and nail the _use
case_ and user experience before it was able to really take off. Do we really
think of end-to-end user experience of programmers? Smalltalk had some human
factors thinking put into it, but I'm not sure this happens for new languages
with enough applied human factors knowledge and expertise. (And the attention
to that sort of detail didn't go quite far enough for Smalltalk either.)

Most programmers are the _last_ people to do that sort of designing. In
particular, I think most programmers are too familiar with programming. It's
like someone asked a driver of one of those saddle-seated early racing cars to
design a minivan.

~~~
cageface
I think if you want to make a car analogy then languages are more fundamental,
like roads. And if languages are like roads then we haven't gotten to the
point of really exploring the design space of cars because we're too busy
deciding how many lanes roads should have, which side of the road we should
drive on, what kind of paving material we should use, and how traffic signs
should be posted.

To be competitive in the current web job market, I have to have at least
_three_ fundamentally very similar languages under my belt: javascript, and at
least two of perl, php, python and ruby. In truth any one of these could
easily do the job of the others. Lately I find this irksome. Diversity is only
a virtue up to a certain point.

------
elbenshira
I've been following Ooc for a long time, mostly because I liked the syntax.
It's a weird blend of C and Ruby.

nddrylliog, I think you should make the "jump to" navigation easier to find in
the intro guide.

~~~
gmaster1440
Made it larger on the opening page ;)

------
0bfusct3
Not to crap on the parade or anything but new languages are a dime a dozen and
most all offer the same exact paradigms rehashed over and over and over. What
I want is a low level easy to verify OOP/chaining functional concurrent
language based on term rewriting. Something needs to be done to allow easier
proving of programs with a language that is designed for this. I'm working on
one.

------
technomancy
> curl: bash -c "`curl -L <http://ooc-lang.org/install.sh`>

Extra points for this awesome install process. I wish more projects would make
a seamless newbie experience higher-priority.

------
albertzeyer
Why not LLVM? Some language compiling to C99 seems kind of outdated since we
have LLVM. (And if C99 is really wanted, LLVM can output that too. Whereby
nobody really is keeping that up-to-date because noone really is interested in
it.)

~~~
gmaster1440
rock, ooc's compiler, supports compilation with clang ;)

~~~
albertzeyer
You mean ooc -> (rock ->) C -> (clang ->) llvm?

I mean ooc -> llvm.

Not only that it is obviously faster and simpler, it is also better to
maintain and better to optimise. And it gives more power and possibilities to
the ooc compiler.

~~~
nddrylliog
Yeah, seems obvious right? But having a C backend (independent of LLVM) still
has advantages. I will continue to maintain it, even if/when we get an LLVM
backend.

I only wish llvm-c would suck less, then we'd get proper bindings and be able
to write the llvm backend in ooc.

~~~
albertzeyer
Why not just write the LLVM backend in C++? The C++ interface is actually
pretty clean and really easy/trivial to use.

~~~
nddrylliog
Then we'd need to access the ooc AST from C++, which is also quite a piece of
work. (I mean - it's easy to use ooc code from C in a C-like way, e.g.
MyObject_myMethod(arg1, arg2), but in C++ that would be tedious/inacceptable)

Besides, what's the point in having a shiny language if we have to use C++ to
implement part of its compiler :(

~~~
albertzeyer
Whoops, my bad, I didn't thought of the self-hosting. Somehow I thought that
the compiler is written in C.

How complicated would it be to link against C++ code from within ooc code?

~~~
nddrylliog
Not too bad, use -linker=g++ and declare your functions extern "C" in the C++
code

~~~
albertzeyer
If it is easy, why not just use the LLVM C++ interface in the ooc compiler?

------
gdl
Not to be confused with "Ook!" <http://esolangs.org/wiki/Ook>!

This is like "Go" / "Go!" all over again, except more people have probably
heard of "Ook!".

~~~
mhd
You think that people who monkey around with eso-langs are in danger of
confusing the two?

~~~
mbreese
Probably not, since Ook was designed for orangutans. However, those orangutans
would probably take offense to describing their work as 'monkey'ing around
since avoiding that word is one of the design principles.

<http://www.dangermouse.net/esoteric/ook.html>

------
shasta
Main reflex: Some useful syntactic advances over Java, but where's the beef? I
see generics exist at runtime - what else?

Also, is the type system known or believed to be sound? Are there casts?

~~~
gmaster1440
There are casts, closures, and more. Feel free to join #ooc-lang on
irc.freenode.net to have more informative discussions ;)

------
albertzeyer
The introduction guide HTML rendering is annoying. It needs at least a width
of 1280. I usually keep my browser window width at about 700, sometimes even
less.

------
WarTheatre
"ooc is a modern, self-hosting, object-oriented, functional, high-level, low-
level programming language. It strives to be powerful, modular, extensible,
portable, yet simple and fast. ooc translates to C99 via rock, our self-
hosting compiler."

Is this for real? Because it sounds like someone is overselling their langauge
way too much.

~~~
shasta
You forgot "sexy"

------
pierrefar
_ooc is a ... high-level, low-level programming language._

Can someone please explain how it can be both?

~~~
nddrylliog
It can be very expressive and high-level when you just want to get stuff done
- but it also allows you to get down to the bare metal in case you have
to/want to.

You can turn off the GC, control when and how the memory gets allocated, use
pointers to deal with raw memory blocks, easily link with ASM, and the
consuming features are easy to avoid - leaving you with a nicer syntax for C.
Of course, in the real world you probably want to find a compromise and not go
'full metal'.

~~~
pierrefar
Thanks. Makes sense now.

------
MoreMoschops
I use C++ and Objective-C, sometimes both at once (go go gadget GCC). I've had
a look through the OOC website - does OOC offer me anything I don't already
have?

~~~
postfuturist
Sexy syntax. C++ and Objective-C both have the superset-of-C ugliness.

~~~
MoreMoschops
Well I'm sold.

