Просто личное впечатление от процесса разработки.
Добро пожаловать под кат, раунд 1.
Уже неделю пилю приложение на java аля то, что создается по умолчанию в новом проекте asp.net mvc 3 %) Пока не очень доволен, честно ) Хотя, конечно, с привычки слезать всегда сложно.
Разброс и количество технологий, редакторов, реализаций, библиотек и сокращений просто поражает.
JBoss, WebSphere, JSP, JSTL, JVM, JRE, JDK, Tomcat, servlet, scriptlet, Ant, Maven, Struts, Spring, JDBC, Vaadin, JUnit, Jameleon, просто пыщь.
Немало доставляет соглашение об именовании переменных в java.
Небольшое сравнение:
java | .net | |
Namespace | edu.cmu.cs.bovik.cheese | System.Collections.Generic |
Class | class MyClass | class MyClass |
Interface | interface Enumberable; | interface IEnumerable |
Field | private int count; | private int _count; |
Property | public String firstName; | public string FirstName; |
Protected field | protected String firstName; | protected string FirstName; |
Local variable | int localCount = 10; | var localCount = 10; |
Inherit class | class A extends B | class A : B |
Implement interface | class A implements B, C | class A : IB, IC |
Inheritance | public class Order extends Object implements Serializable | public class Order : Object, ISerializable |
Вот и как теперь отличить поле, protected свойство, локальную переменную, вызов метода? Интерфейс от класса?
Также, да, я не описался, интерфейсы в java не принято называть с "I" (Clonable, Comparable vs. IClonable, IComparable) *facepalm*. Но большинство разработчиков, спасибо, всё таки называют (по крайней мере мне так показалось).
Класс String с большой буквы!
Ну, про свойства мы с Вами и так всё знаем
java | .net |
private String name; public String getName() { return name; } protected void setName(String name) { this.name = name; } | public Name { get; protected set; } |
Да, вот ещё одно любимое слово в java - this.
В следующем раунде рассмотрим использование продвинутых технологий языков - рефлексию и шаблоны, а так же впечатления от IDE.