Programowanie (PHP, Java...)

Krótkie rozmyślanie nad składnią języków...

07 marca, 2006 o 08:23:28 Dodaj komentarz Poziom: 0 Permalink

Języki się różnią. Widać to choćby na przykładzie prostej klasy(Korzystającej z (N)Hibernate).

klasa.java:

  1. public class Klasa {
  2.   public long getId() {
  3.     return _id;
  4.   }
  5.   public String getNazwa() {
  6.     return _nazwa;
  7.   }
  8.   public void setNazwa(String s) {
  9.     _nazwa = s;
  10.   }
  11.   protected long _id;
  12.   protected String _nazwa;
  13. }

klass.hbm.xml

  1. <?xml version="1.0"?>
  2. <hibernate-mapping>
  3.   <class name="Klasa" table="Klasy">
  4.     <id name="id" column="id">
  5.       <generator class="native"/>
  6.     </id>
  7.     <property name="nazwa"/>
  8.   </class>
  9. </hibernate-mapping>

Klasa.cs

  1. using NHibernate.Mapping.Attributes;
  2.  
  3. [Class]
  4. class Klasa {
  5.   public UInt64 Id {
  6.     get {
  7.        return id;
  8.     }
  9.   }
  10.   public String Nazwa {
  11.     get {
  12.        return nazwa;
  13.     }
  14.     set {
  15.        nazwa = value;
  16.     }
  17.   }
  18.  
  19.   [Id(0, ClassType=typeof(UInt64))]
  20.   [Generator(1, Class="native"]
  21.   public long id;
  22.   [Property]
  23.   public String nazwa;
  24. }

Klasa.boo(Nie pamietam jak utwożyć ro property, ale to szczegół):

import NHibernate.Mapping.Attributes [Class] \ class Klasa: def constructor: pass [Boo.Lang.Property(Id)] \ [Id(0, ClassType=UInt64)] \ [Generator(1, Class="native"] \ id as ulong [Boo.Lang.Property(Nazwa)] \ [Property] \ nazwa as String

Przy nemerle (nie znam składni), pewnie za pomocą makr, dałoby się to zapisać jeszcze krócej.

Kod nie był testowany ani kompliowany.

Komentarze do wpisu

Możesz śledzić odpowiedzi poprzez kanał RSS. Możesz dodać komentarz lub zostawić ślad (trackback) ze swojego bloga.

#

s


Link do książki o której wspominałem:

http://www.gigamonkeys.com/book/

08 marca 2006, 20:52:17

Dodaj komentarz

Textile Lite włączony ( szczegółowy opis znaczników ):