Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
F#, Scala являются тяжеловесами совершенно другого уровня — чистые функциональные языки.И давно F# стал чисто функциональным языком?
F# is a succinct, expressive and efficient functional and object-oriented language for .NET which helps you write simple code to solve complex problems.
Плюс зоопарк версий дотнета.
У жабистов достаточно иметь последнюю версию, и на ней гарантированно пойдет всё.
Дотнет тупо ставит весь этот зоопарк разом, что по моему мнению изжоп.
А разве 3.5 включает 2.0?
Если Вам интересно посмотреть на C# и Java без субъективизма
А ведь в по-настоящему ОО-языке everything is object.
— нет application server уровня weblogic/jboss (хотя вру, есть COM+, но он был заброшен Microsoft)чем IIS + webfarm не угодил?
— нет распределенных кэшей coherence/terracota (Oracle Coherence опять таки позволяет хоть что то дать .Net приложениям, но через Coherence Extend, то есть, производительность будет на порядки хуже)
а это тогда что? или джавовский List<T> не скатывается к List<Object>?
String x = (String) list.get(0);
List< T > не скатывается к List< Object >? List< int >
в C# и
List< Integer >
в Java. Другими словами, в C# вы всё равно не оперируете примитивами, вы оперируете специальными структурами. при List<T> в C# не происходит ни упаковки примитивов, ни приведения типов при операциях.
List<Object> и List<string>будут сгенерированы одинаковые x86-инструкции. для ознакомления можно почитать здесь.
class Program
{
static void Main(string[] args)
{
var list = new List<Circle>();
DrawShapes(list); // ошибка отсутствует
}
static void DrawShapes(IEnumerable<Shape> shapes)
{
foreach (var shape in shapes)
{
shape.Draw();
}
}
}
public abstract class Shape
{
public abstract void Draw();
}
public class Circle : Shape
{
public override void Draw()
{
//do something
}
}
static void DrawShapes<T>(List<T> shapes) where T : Shape
{
foreach (var shape in shapes)
{
shape.Draw();
}
}
Крадущийся тигр, затаившийся дракон