> instead supports operator polymorphism, where an operator is a shortcut for a method of a built-in type. This is supposed to be safer and simpler than true operator overloading.
То что его забанили - это для меня не новость, так как его банили много раз. Так же я помню что его разбанили на 1е апреля, но я думал что это прикол, и я не уверен что это тот самый фрактал.
Нифига, по-моему. Это так же как как критерии равенства треугольников в 5 что ли классе: по 3 сторонам, по соседним сторонам и углу между ними итд. То есть функции с 1 именем делают всё как бы то же самое, возвращают результат, скажем типа boolean, но делают это по-своему и со своими аргументами. Лучше, ИМХО, вынести их в разные функции с 1 именем.
Кстати да. Достал сейчас вот книжку во жабе (я когда-то написал на ней пару хеллоуворлдов). Так вот чтобы хеллоуворлд написать, надо создать класс с методом main. Пичаль.
То, что нужно. Реально нужно пилить на JVM не клон Лиспа или Питона, а «ту же Жабу, только лучше». То есть провести работу над ошибками с учётом накопленного опыта. Если они напишут production-ready компилятор и сохранят биранрую совместимость с Жабой, зауважаю их.
Scala. Production-ready, совместимость такая, что у меня в одном проекте рядом лежат скала и ява классы и друг друга используют. Возможности все, что есть у явы плюс функциональщина.
> Как мне кажется, перегрузка это костыль, который решает проблему отсутствия возможности указывать параметры по умолчанию.
int max (int, int)
float max (float, float)
public class MaxTester {
public static <T extends Comparable<? super T>> T max(T a, T b) {
return a.compareTo(b) >= 0 ? a : b;
}
public static void main(String[] args) {
System.out.println("max(4, 5) is: " + max(4, 5));
}
}
max(4, 5) is: 5
УМВР, ЧЯДНТ?
для примитивных типов это overkill
Вам шашечки или ехать? В Жабе затратами на автобоксинг можно смело пренебречь, особенно для маленьких чисел, которые кэшируются (а JIT-компилятор может и соптимизировать). Вон в Питоне вообще все числа - объекты, и ничего, живут.
Люди: Гэвин а гевин? Ты в своем уродском гибернейте открываешь транзакцию на одноразовый select когда тебя не просили - а зачем?
Гэвин: Потому что вы пацаки не шарите в базах данных - транзакцию надо открывать всегда - я так сказал - и если вы ее не откроете сами - я открою вам ее.
Люди: Гэвин - если ты такой умный и автоматически открываешь транзакцию которую у тебя не просили, не мог бы ты быть таким добрым закрывать ее тоже автоматически?
Гэвин: Адапошливы - я вам такой клевый гибернейт написал, а вам поговнокодить западло ради того, чтобы мой великий гибернейт пользовать...
Red Hat даже не язык java переделать собрались, а сначала всю Java SE SDK ибо «Well, we've been designing and building frameworks and libraries for Java for ten years, and we know its limitations intimately. And we're frustrated. ...But much of our frustration is not even with the Java language itself. The extremely outdated class libraries that form the Java SE SDK are riddled with problems. Developing a great SDK is a top priority of the project. But much of our frustration is not even with the Java language itself. The extremely outdated class libraries that form the Java SE SDK are riddled with problems. Developing a great SDK is a top priority of the project»
«On Slashdot, several commenters argue that creating a whole language and SDK from scratch is an enormous undertaking. Well, we're really not starting from scratch: we can reuse an enormous amount of code that is already available under open source licenses in the Java ecosystem. Just think of what's reusable from Open JDK, JBoss, and Eclipse!»
«> As many others, I'm interested why you think Scala isn't quite the language you were looking for.
Scala is an interesting language and it's one of several languages that influenced Ceylon. We looked closely at Scala, but we collectively concluded that it wasn't the right thing for us. Personally, I find that Scala's type system is simply more complex than I want or need, with several features I think actually harm understandability/readability, and I find its syntax a bit of a dog's breakfast. (Oh and I guess there's way too much use of cryptic punctuation where words would be clearer and more readable.)
We're trying to live with a lot less language features than Scala. Leaving stuff out is, in and of itself, often a Good Thing. And we think it's important to have a very regular, visually pleasing, readable syntax.
Interestingly, Scala takes much more from ML/Haskell than Ceylon does, but whereas I think I can imagine myself getting into writing code in Haskell or even ML, I just don't feel the same way about Scala. I guess I just really don't feel that the whole language really „hangs together“ the way Smalltalk or Haskell hang together.
But look, that's just a very personal view, and I simply don't want to get into criticizing Scala or arguing back and forth about specific language features. Ceylon is a quite different language and stands or falls on its own. And clearly Scala has one incredible selling feature that we simply can't match right now: an actual working compiler ;-)»