TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

The eero programming language - a dialect of Objective-C

131 pointsby basilalmost 13 years ago

13 comments

jballancalmost 13 years ago
Programmers "liked" Java because they were told to by Sun. Programmers "liked" C# because they were told to by Microsoft. Now, programmers "like" Obj-C because they are told to by Apple. In that regard, this seems like a step in the right direction...<p>But it's only a half step. If you look at what's happened to the other two languages mentioned above, they have evolved such that their runtimes are now more important than the languages they originally hosted.<p>What really needs to happen to Obj-C is for people to wake up and realize that the runtime is actually really nice. Combined with LLVM, one could make the case that the Obj-C runtime could compete with the JVM or the CLR.<p>(Of course, the one huge, massive, glaring omission is any sort of managed memory... Well, at least there <i>was</i> a garbage collector at one point.)
评论 #4212025 未加载
评论 #4212103 未加载
评论 #4212162 未加载
评论 #4211991 未加载
评论 #4212469 未加载
评论 #4212238 未加载
angermanalmost 13 years ago
While it looks interesting and probably has some use cases, the syntax puts me off a little. YMMV. Yes, Obj-C has many brackets. But I find them supporting reading by grouping relevant elements together. I assume if you dislike lisp like languages, eero might help in this regard.<p>What I particularly don't like are the tailing return types.<p>I also assume apple is actively working to reducing the Obj-C verbosity to some extend.<p>Regarding the website, I miss a "get started" link. How do I take it for a quick test-drive?<p>EDIT: It sais: "Eero is a fully binary- and header-compatible dialect of Objective-C". Does this mean, I can write a module in Eero and have it derive the correct header files for me? Or do I need to re-write the header file to be consumed by (legacy) Obj-C?
评论 #4211787 未加载
评论 #4212040 未加载
评论 #4211755 未加载
评论 #4212373 未加载
评论 #4214243 未加载
评论 #4211704 未加载
SeoxySalmost 13 years ago
Objective-C is hands down one of my favorite programming language:<p>- It's compiled, not interpreted. Even Java and C# are compiled into bytecode for a massive VM to interpret. Objective-C has no VM, it's pure binary + a shared library to implement the runtime. It also uses the very best compiler, clang, which gives incredibly helpful error messages, warnings and suggestions.<p>- It's a strict superset of C. Even C++ does not meet this criteria. This means any valid C is valid Obj-C and behaves exactly the same way, in any Obj-C file. You can drop down levels of abstraction for performance, and can even write assembly if that's what it takes.<p>- It has an amazing and fully supported debugger in the form of LLDB.<p>- It's fully dynamic, allows introspection, duck typing and even monkey patching (with a little effort; method swizzling). Everything is an object, except for native C types.<p>- It takes the right approach to memory management. Realizes that garbage collectors are abominations, and that managing memory is really the job of either the developer or the compiler.<p>- It has the most fantastic concurrency framework I've ever used, in the form of `libdispatch`. Now, to be fair, it's a C library that ought to work anywhere, but practically it only works well on Apple's platforms and using clang.<p>- Apple is moving in the right direction, cleaning up the language, removing annoyances and making syntax more succinct.<p>- Header files. I think I'm on my own in liking this—but I think headers are amazing. They're a succinct and standalone version of a documentation file that is extremely useful to both developers and the compiler. Use them to describe well the public interface to your class, and you don't even really have to write documentation anymore.<p>- Solid design patterns and convention-driven. These are getting better by the day, with the recent addition of closures to the language.<p>There's two major annoyances:<p>- It's often needlessly verbose. Not in the syntax, mind you, which is just fine, but in the naming conventions. For example, `NSArray` has a method called `enumerateObjectsUsingBlock:` instead of simply `each:`. Add that up to every single name, and you get pretty ugly code—and good luck writing it with anything other than Xcode's context-aware autocompletion.<p>- It's tied to Apple's platforms, and well not run on anything else. Now, I'm fine with Apple-specific frameworks and GUI frameworks (like QuickTime or UIKit) being Apple-only, but I'd really love to use the language to write a backend service, for which I'd only need Foundation &#38; libdispatch, for example.
评论 #4212705 未加载
评论 #4212441 未加载
评论 #4212670 未加载
评论 #4212623 未加载
评论 #4212683 未加载
评论 #4212229 未加载
评论 #4212262 未加载
introspectifalmost 13 years ago
Most of the comments here are way off base, focusing on the relative worth of the objective-c language, rather than the value of Eero for developers who have no choice but to use objective-c, regardless of how good they think it is or isn't.<p>If you haven't already - I highly recommend following the link. RubyMotion was somewhat interesting, but really didn't feel like a massive improvement over plain old objective-c, especially once you factor in all the Cocoa APIs.<p>However, Eero looks amazing. The syntax used represents a vast improvement over straight objective-c or RubyMotion. Take a look - it's genuinely exciting.
cagefacealmost 13 years ago
The problem, as RubyMotion and Monotouch have both demonstrated, is that no matter how much you change the language your code is still dominated by calls into the Cocoa APIs, and that's where a lot of the verbosity and ugliness lies (IMO).
评论 #4212344 未加载
评论 #4212089 未加载
huragokalmost 13 years ago
I can definely see myself using this over objective-c if it proves stable enough for production usage.
评论 #4211843 未加载
basilalmost 13 years ago
The examples struck me as looking a lot like Go and I found a few similarities:<p>- Local type inferencing (i := 100) is identical.<p>- No parentheses for control structures.<p>- Lack of semicolons.<p>- Ranges in array enumeration (albeit with different syntax).
jashkenasalmost 13 years ago
Pretty rad that eero forbids variable shadowing. It would be neat if more languages start doing that in the future...<p><a href="http://eerolanguage.org/documentation/index.html#noshadowing" rel="nofollow">http://eerolanguage.org/documentation/index.html#noshadowing</a>
评论 #4213916 未加载
Apocryphonalmost 13 years ago
Interesting, especially given how I was listening to John Siracusa's two Hypercritical talks from 2011 where he points out that replacing Obj-C (or any language) with bridges is insufficient. I hope he might weigh in on his thoughts of eero in the future.
fusiongyroalmost 13 years ago
It looks nice, but I can't help but wonder why not go all the way to Smalltalk instead?<p><pre><code> helper := FileHelper new. "declare variable 'helper' via type inference" files := [] "empty array literal implies mutable" files addObject: (helper openFile: 'readme.txt'). "can group message in parens" files do: [ | FileHandle handle | "all objects are pointers, so no '*' needed" self log: 'File descriptor is %@', (Number)(handle fileDescriptor) ). self handle: closeFile ]. ^ 0 </code></pre> Of course, you'd still have to solve the lack of syntax for defining classes and methods, but there are a couple solutions to that problem out there already.
评论 #4217877 未加载
akarualmost 13 years ago
Looking through the docs, it does look incredible, perhaps the Perfect® language for my tastes.<p>But the old man in me says it'll never stick.
gothyalmost 13 years ago
Finally!
franzusalmost 13 years ago
&#62; Python-like indentation<p>Oh god, please no.
评论 #4211841 未加载
评论 #4211691 未加载
评论 #4211939 未加载
评论 #4211917 未加载