Portál AbcLinuxu, 1. května 2024 10:59


Google přibližuje světu jazyk Dart

Google světu ukázal jazyk Dart, jehož účelem je nahradit JavaScript ve webových aplikacích. Veškeré informace a ukázky najdete na dartlang.org. Jazyk se dost podobá Javě, ale zachovává některé rysy JavaScriptu.

10.10.2011 13:14 | Luboš Doležel (Doli) | Zajímavý projekt


Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (3) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

Saljack avatar 10.10.2011 13:24 Saljack | skóre: 28 | blog: Saljack | Praha
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
Odpovědět | Sbalit | Link | Blokovat | Admin
Execute Dart code directly in a VM on the server side?
Sex, Drugs & Rock´n Roll.
Rezza avatar 10.10.2011 13:52 Rezza | skóre: 25 | blog: rezza | Brno
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
Odpovědět | Sbalit | Link | Blokovat | Admin
Kolikaty je to jazyk od Google? :)))
10.10.2011 14:02 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
tento pocin vitam daleko vic nez treba go, protoze resi konkretni problem... a to, ze javascript je jedno velke programatorske peklo a pokud se ho podari nahradit necim civilizovanejsim, mozna se bude dat rozumne programovat i na strane klienta... ale hodne zalezi na tom, jak se bude jazyk a jeho podpora dal vyvijet.
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
10.10.2011 14:11 kralyk z abclinuxu | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
+1, aby se dal JavaScript rozumně použít, musí se hrozně znásilňovat. Viz jQuery... Ne, že by to nefungovalo, ale je to takové, no, je na tom vidět, že ten jazyk na to není stavěný.
10.10.2011 14:33 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
Rozšiřitelnost není znásilňování. JavaScript je šílený jazyk, ale má pár skvělých vlastností: událostní smyčku, funkce jako hodnoty (first-class functions, higher-order functions) a rozšiřitelnou syntaxi.
Ještě na tom nejsem tak špatně, abych četl Viewegha.
10.10.2011 14:50 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
Rozšiřitelnost není znásilňování.

knihovna od zakladu prekopavajici cely jazyk za ucelem, aby se dal ten jazyk pouzivat k tomu, k cemu byl vubec navrzeny mi prijde opravdu trochu jako zvracenost a znasilneni
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
10.10.2011 14:53 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
Jo, a největší prča na tom je, že ta knihovna nemění vůbec nic. Čekal bych, že zrovna ty budeš mít trochu pochopení, v JavaScriptu je pod pár vrstvami špíny a hnusu ukryté Scheme, které by mohly pochopit i masy :-)
Ještě na tom nejsem tak špatně, abych četl Viewegha.
10.10.2011 15:10 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
Jo, a největší prča na tom je, že ta knihovna nemění vůbec nic.
to jo. mimochodem, osobne radsi preferuju dojo, prijde mi takove nejake civilizovanejsi.
Čekal bych, že zrovna ty budeš mít trochu pochopení, v JavaScriptu je pod pár vrstvami špíny a hnusu ukryté Scheme, které by mohly pochopit i masy :-)
ano, jedna cast meho ja ocenuje, ze tam je opravdu schovany scheme, a ze JS zpristupnuje funkcionalni zpusob programovani i sirokym masam. ale ta druha cast meho ja, ktera v tom obcas musi neco programovat by autory specifikace i s implementatory vymachala v dehtu a peri a hnala je pres cele silicon valley.
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
10.10.2011 15:08 R
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
A ked sa ta kniznica parsuje pri kazdom nacitani stranky, to je parada...
10.10.2011 15:09 Radek Miček | skóre: 23 | blog: radekm_blog
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
To je věc konkrétní implementace.
10.10.2011 14:11 polymorf | skóre: 14 | blog: tar_zxpf
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
Co konkretne ti na JS vadi?
Luboš Doležel (Doli) avatar 10.10.2011 14:17 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
Z hlediska API je hrozně nízkoúrovňový.
Bedňa avatar 10.10.2011 14:32 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
Tak, tak s čím súvisia aj rozdielne implementácie DOMu.
KERNEL ULTRAS video channel >>>
10.10.2011 14:31 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
Odpovědět | Sbalit | Link | Blokovat | Admin
In love!
Ještě na tom nejsem tak špatně, abych četl Viewegha.
alblaho avatar 10.10.2011 19:32 alblaho | skóre: 17 | blog: alblog
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
Proč? Má to pořádně udělanou kompozici objektů?
11.10.2011 10:28 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
Nemá, pořád je tam dědičnost (jednoduchá, plus možná v budoucnu přibudou traity), ale má to kromě normálních i factory konstruktory, což je zatím to nejlepší řešení konstruktorů, co jsem viděl. A i jinak je to docela hezké, rozhodně mne překvapili… no i když Gilad Bracha a Peter Ahé, ti mne vlastně mohli překvapit jenom příjemně :-)
Ještě na tom nejsem tak špatně, abych četl Viewegha.
10.10.2011 14:46 __dark__
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
Odpovědět | Sbalit | Link | Blokovat | Admin
Po fiasku s jazykem Go uvádí google Dart, jakákoliv podobnost s actionscriptem je čistě náhodná, pro jistotu byla změněna i standardní syntax deklarace funkcí, konstruktorů, a přejmenovány některé typy ;-)
10.10.2011 15:47 Radek Miček | skóre: 23 | blog: radekm_blog
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
Odpovědět | Sbalit | Link | Blokovat | Admin
Těší mě možnost statického typování a zároveň doufám, že prohlížeče využijí typovou informaci ke zvýšení rychlosti.
10.10.2011 20:38 pozortucnak | skóre: 21 | blog: vecny_windowsar
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
Odpovědět | Sbalit | Link | Blokovat | Admin
To tu nikdo nezná/nepoužívá haxe?

Jsem mimořádně obtížný případ
10.10.2011 21:48 Radek Miček | skóre: 23 | blog: radekm_blog
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
Důležité IMO je, že za Dartem stojí Google a bude mít podporu přímo v Chrome.
10.10.2011 22:14 kralyk z abclinuxu | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
Jazyk, ze kterého se dá nageneroat JS, PHP a C++? Nic prot, ale to zní dost šíleně :-D
Saljack avatar 10.10.2011 22:17 Saljack | skóre: 28 | blog: Saljack | Praha
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
Proč?
Sex, Drugs & Rock´n Roll.
10.10.2011 22:57 Juraj
Rozbalit Rozbalit vše Pre pythonistov - CoffeeScript
Odpovědět | Sbalit | Link | Blokovat | Admin
CoffeeScript - Velmi som v tom este nerobil ale kod sa dobre cita.

11.10.2011 10:14 Michal Karas | skóre: 45 | blog: /dev/random
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
Odpovědět | Sbalit | Link | Blokovat | Admin
Hello world v Dartu zkompilovaný do JavaScriptu: https://gist.github.com/1277224. :)
11.10.2011 12:34 polymorf | skóre: 14 | blog: tar_zxpf
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
Epic thread :D

Inak ak ma byt dart->js docasna nahrada za GWT (ktore je tiez humus) pre prehliadace ktore nebudu podporovat dart (vsetky okrem chrome) tak to neni az take zle. Samozrejme pouzivat by som to nechcel, je to proste taka politicky korektnejsia nahrada za alert('Stranka je optimalizovana pre google chrome')
11.10.2011 12:54 pozortucnak | skóre: 21 | blog: vecny_windowsar
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart

Hello world v haxe zkompilovaný do JavaScriptu:

haxe
import js.Lib;
class Main 
{
  static function main() 
  {
    Lib.alert("ahoj světe");
  }
}
javascript
$estr = function() { return js.Boot.__string_rec(this,''); }
Std = function() { }
Std.__name__ = ["Std"];
Std["is"] = function(v,t) {
	$s.push("Std::is");
	var $spos = $s.length;
	var $tmp = js.Boot.__instanceof(v,t);
	$s.pop();
	return $tmp;
	$s.pop();
}
Std.string = function(s) {
	$s.push("Std::string");
	var $spos = $s.length;
	var $tmp = js.Boot.__string_rec(s,"");
	$s.pop();
	return $tmp;
	$s.pop();
}
Std["int"] = function(x) {
	$s.push("Std::int");
	var $spos = $s.length;
	if(x < 0) {
		var $tmp = Math.ceil(x);
		$s.pop();
		return $tmp;
	}
	var $tmp = Math.floor(x);
	$s.pop();
	return $tmp;
	$s.pop();
}
Std.parseInt = function(x) {
	$s.push("Std::parseInt");
	var $spos = $s.length;
	var v = parseInt(x,10);
	if(v == 0 && x.charCodeAt(1) == 120) v = parseInt(x);
	if(isNaN(v)) {
		$s.pop();
		return null;
	}
	var $tmp = v;
	$s.pop();
	return $tmp;
	$s.pop();
}
Std.parseFloat = function(x) {
	$s.push("Std::parseFloat");
	var $spos = $s.length;
	var $tmp = parseFloat(x);
	$s.pop();
	return $tmp;
	$s.pop();
}
Std.random = function(x) {
	$s.push("Std::random");
	var $spos = $s.length;
	var $tmp = Math.floor(Math.random() * x);
	$s.pop();
	return $tmp;
	$s.pop();
}
Std.prototype.__class__ = Std;
IntIter = function(min,max) {
	if( min === $_ ) return;
	$s.push("IntIter::new");
	var $spos = $s.length;
	this.min = min;
	this.max = max;
	$s.pop();
}
IntIter.__name__ = ["IntIter"];
IntIter.prototype.min = null;
IntIter.prototype.max = null;
IntIter.prototype.hasNext = function() {
	$s.push("IntIter::hasNext");
	var $spos = $s.length;
	var $tmp = this.min < this.max;
	$s.pop();
	return $tmp;
	$s.pop();
}
IntIter.prototype.next = function() {
	$s.push("IntIter::next");
	var $spos = $s.length;
	var $tmp = this.min++;
	$s.pop();
	return $tmp;
	$s.pop();
}
IntIter.prototype.__class__ = IntIter;
Main = function() { }
Main.__name__ = ["Main"];
Main.main = function() {
	$s.push("Main::main");
	var $spos = $s.length;
	js.Lib.alert("ahoj světe");
	$s.pop();
}
Main.prototype.__class__ = Main;
if(typeof js=='undefined') js = {}
js.Lib = function() { }
js.Lib.__name__ = ["js","Lib"];
js.Lib.isIE = null;
js.Lib.isOpera = null;
js.Lib.document = null;
js.Lib.window = null;
js.Lib.alert = function(v) {
	$s.push("js.Lib::alert");
	var $spos = $s.length;
	alert(js.Boot.__string_rec(v,""));
	$s.pop();
}
js.Lib.eval = function(code) {
	$s.push("js.Lib::eval");
	var $spos = $s.length;
	var $tmp = eval(code);
	$s.pop();
	return $tmp;
	$s.pop();
}
js.Lib.setErrorHandler = function(f) {
	$s.push("js.Lib::setErrorHandler");
	var $spos = $s.length;
	js.Lib.onerror = f;
	$s.pop();
}
js.Lib.prototype.__class__ = js.Lib;
js.Boot = function() { }
js.Boot.__name__ = ["js","Boot"];
js.Boot.__unhtml = function(s) {
	$s.push("js.Boot::__unhtml");
	var $spos = $s.length;
	var $tmp = s.split("&").join("&").split("<").join("<").split(">").join(">");
	$s.pop();
	return $tmp;
	$s.pop();
}
js.Boot.__trace = function(v,i) {
	$s.push("js.Boot::__trace");
	var $spos = $s.length;
	var msg = i != null?i.fileName + ":" + i.lineNumber + ": ":"";
	msg += js.Boot.__unhtml(js.Boot.__string_rec(v,"")) + "<br/>";
	var d = document.getElementById("haxe:trace");
	if(d == null) alert("No haxe:trace element defined\n" + msg); else d.innerHTML += msg;
	$s.pop();
}
js.Boot.__clear_trace = function() {
	$s.push("js.Boot::__clear_trace");
	var $spos = $s.length;
	var d = document.getElementById("haxe:trace");
	if(d != null) d.innerHTML = "";
	$s.pop();
}
js.Boot.__closure = function(o,f) {
	$s.push("js.Boot::__closure");
	var $spos = $s.length;
	var m = o[f];
	if(m == null) {
		$s.pop();
		return null;
	}
	var f1 = function() {
		$s.push("js.Boot::__closure@67");
		var $spos = $s.length;
		var $tmp = m.apply(o,arguments);
		$s.pop();
		return $tmp;
		$s.pop();
	};
	f1.scope = o;
	f1.method = m;
	$s.pop();
	return f1;
	$s.pop();
}
js.Boot.__string_rec = function(o,s) {
	$s.push("js.Boot::__string_rec");
	var $spos = $s.length;
	if(o == null) {
		$s.pop();
		return "null";
	}
	if(s.length >= 5) {
		$s.pop();
		return "<...>";
	}
	var t = typeof(o);
	if(t == "function" && (o.__name__ != null || o.__ename__ != null)) t = "object";
	switch(t) {
	case "object":
		if(o instanceof Array) {
			if(o.__enum__ != null) {
				if(o.length == 2) {
					var $tmp = o[0];
					$s.pop();
					return $tmp;
				}
				var str = o[0] + "(";
				s += "\t";
				var _g1 = 2, _g = o.length;
				while(_g1 < _g) {
					var i = _g1++;
					if(i != 2) str += "," + js.Boot.__string_rec(o[i],s); else str += js.Boot.__string_rec(o[i],s);
				}
				var $tmp = str + ")";
				$s.pop();
				return $tmp;
			}
			var l = o.length;
			var i;
			var str = "[";
			s += "\t";
			var _g = 0;
			while(_g < l) {
				var i1 = _g++;
				str += (i1 > 0?",":"") + js.Boot.__string_rec(o[i1],s);
			}
			str += "]";
			$s.pop();
			return str;
		}
		var tostr;
		try {
			tostr = o.toString;
		} catch( e ) {
			$e = [];
			while($s.length >= $spos) $e.unshift($s.pop());
			$s.push($e[0]);
			$s.pop();
			return "???";
		}
		if(tostr != null && tostr != Object.toString) {
			var s2 = o.toString();
			if(s2 != "[object Object]") {
				$s.pop();
				return s2;
			}
		}
		var k = null;
		var str = "{\n";
		s += "\t";
		var hasp = o.hasOwnProperty != null;
		for( var k in o ) { ;
		if(hasp && !o.hasOwnProperty(k)) {
			continue;
		}
		if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__") {
			continue;
		}
		if(str.length != 2) str += ", \n";
		str += s + k + " : " + js.Boot.__string_rec(o[k],s);
		}
		s = s.substring(1);
		str += "\n" + s + "}";
		$s.pop();
		return str;
	case "function":
		$s.pop();
		return "<function>";
	case "string":
		$s.pop();
		return o;
	default:
		var $tmp = String(o);
		$s.pop();
		return $tmp;
	}
	$s.pop();
}
js.Boot.__interfLoop = function(cc,cl) {
	$s.push("js.Boot::__interfLoop");
	var $spos = $s.length;
	if(cc == null) {
		$s.pop();
		return false;
	}
	if(cc == cl) {
		$s.pop();
		return true;
	}
	var intf = cc.__interfaces__;
	if(intf != null) {
		var _g1 = 0, _g = intf.length;
		while(_g1 < _g) {
			var i = _g1++;
			var i1 = intf[i];
			if(i1 == cl || js.Boot.__interfLoop(i1,cl)) {
				$s.pop();
				return true;
			}
		}
	}
	var $tmp = js.Boot.__interfLoop(cc.__super__,cl);
	$s.pop();
	return $tmp;
	$s.pop();
}
js.Boot.__instanceof = function(o,cl) {
	$s.push("js.Boot::__instanceof");
	var $spos = $s.length;
	try {
		if(o instanceof cl) {
			if(cl == Array) {
				var $tmp = o.__enum__ == null;
				$s.pop();
				return $tmp;
			}
			$s.pop();
			return true;
		}
		if(js.Boot.__interfLoop(o.__class__,cl)) {
			$s.pop();
			return true;
		}
	} catch( e ) {
		$e = [];
		while($s.length >= $spos) $e.unshift($s.pop());
		$s.push($e[0]);
		if(cl == null) {
			$s.pop();
			return false;
		}
	}
	switch(cl) {
	case Int:
		var $tmp = Math.ceil(o%2147483648.0) === o;
		$s.pop();
		return $tmp;
	case Float:
		var $tmp = typeof(o) == "number";
		$s.pop();
		return $tmp;
	case Bool:
		var $tmp = o === true || o === false;
		$s.pop();
		return $tmp;
	case String:
		var $tmp = typeof(o) == "string";
		$s.pop();
		return $tmp;
	case Dynamic:
		$s.pop();
		return true;
	default:
		if(o == null) {
			$s.pop();
			return false;
		}
		var $tmp = o.__enum__ == cl || cl == Class && o.__name__ != null || cl == Enum && o.__ename__ != null;
		$s.pop();
		return $tmp;
	}
	$s.pop();
}
js.Boot.__init = function() {
	$s.push("js.Boot::__init");
	var $spos = $s.length;
	js.Lib.isIE = typeof document!='undefined' && document.all != null && typeof window!='undefined' && window.opera == null;
	js.Lib.isOpera = typeof window!='undefined' && window.opera != null;
	Array.prototype.copy = Array.prototype.slice;
	Array.prototype.insert = function(i,x) {
		$s.push("js.Boot::__init@205");
		var $spos = $s.length;
		this.splice(i,0,x);
		$s.pop();
	};
	Array.prototype.remove = Array.prototype.indexOf?function(obj) {
		$s.push("js.Boot::__init@208");
		var $spos = $s.length;
		var idx = this.indexOf(obj);
		if(idx == -1) {
			$s.pop();
			return false;
		}
		this.splice(idx,1);
		$s.pop();
		return true;
		$s.pop();
	}:function(obj) {
		$s.push("js.Boot::__init@213");
		var $spos = $s.length;
		var i = 0;
		var l = this.length;
		while(i < l) {
			if(this[i] == obj) {
				this.splice(i,1);
				$s.pop();
				return true;
			}
			i++;
		}
		$s.pop();
		return false;
		$s.pop();
	};
	Array.prototype.iterator = function() {
		$s.push("js.Boot::__init@225");
		var $spos = $s.length;
		var $tmp = { cur : 0, arr : this, hasNext : function() {
			$s.push("js.Boot::__init@225@229");
			var $spos = $s.length;
			var $tmp = this.cur < this.arr.length;
			$s.pop();
			return $tmp;
			$s.pop();
		}, next : function() {
			$s.push("js.Boot::__init@225@232");
			var $spos = $s.length;
			var $tmp = this.arr[this.cur++];
			$s.pop();
			return $tmp;
			$s.pop();
		}};
		$s.pop();
		return $tmp;
		$s.pop();
	};
	if(String.prototype.cca == null) String.prototype.cca = String.prototype.charCodeAt;
	String.prototype.charCodeAt = function(i) {
		$s.push("js.Boot::__init@239");
		var $spos = $s.length;
		var x = this.cca(i);
		if(x != x) {
			$s.pop();
			return null;
		}
		$s.pop();
		return x;
		$s.pop();
	};
	var oldsub = String.prototype.substr;
	String.prototype.substr = function(pos,len) {
		$s.push("js.Boot::__init@246");
		var $spos = $s.length;
		if(pos != null && pos != 0 && len != null && len < 0) {
			$s.pop();
			return "";
		}
		if(len == null) len = this.length;
		if(pos < 0) {
			pos = this.length + pos;
			if(pos < 0) pos = 0;
		} else if(len < 0) len = this.length + len - pos;
		var $tmp = oldsub.apply(this,[pos,len]);
		$s.pop();
		return $tmp;
		$s.pop();
	};
	$closure = js.Boot.__closure;
	$s.pop();
}
js.Boot.prototype.__class__ = js.Boot;
$_ = {}
js.Boot.__res = {}
$s = [];
$e = [];
js.Boot.__init();
{
	String.prototype.__class__ = String;
	String.__name__ = ["String"];
	Array.prototype.__class__ = Array;
	Array.__name__ = ["Array"];
	Int = { __name__ : ["Int"]};
	Dynamic = { __name__ : ["Dynamic"]};
	Float = Number;
	Float.__name__ = ["Float"];
	Bool = { __ename__ : ["Bool"]};
	Class = { __name__ : ["Class"]};
	Enum = { };
	Void = { __ename__ : ["Void"]};
}
{
	Math.__name__ = ["Math"];
	Math.NaN = Number["NaN"];
	Math.NEGATIVE_INFINITY = Number["NEGATIVE_INFINITY"];
	Math.POSITIVE_INFINITY = Number["POSITIVE_INFINITY"];
	Math.isFinite = function(i) {
		$s.push("js.Boot::__init");
		var $spos = $s.length;
		var $tmp = isFinite(i);
		$s.pop();
		return $tmp;
		$s.pop();
	};
	Math.isNaN = function(i) {
		$s.push("js.Boot::__init");
		var $spos = $s.length;
		var $tmp = isNaN(i);
		$s.pop();
		return $tmp;
		$s.pop();
	};
}
{
	js.Lib.document = document;
	js.Lib.window = window;
	onerror = function(msg,url,line) {
		var stack = $s.copy();
		var f = js.Lib.onerror;
		$s.splice(0,$s.length);
		if( f == null ) {
			var i = stack.length;
			var s = "";
			while( --i >= 0 )
				s += "Called from "+stack[i]+"\n";
			alert(msg+"\n\n"+s);
			return false;
		}
		return f(msg,stack);
	}
}
js.Lib.onerror = null;
Main.main()
Jsem mimořádně obtížný případ
11.10.2011 12:59 Wizard
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
Ono když to převáděl do JS tak tam zahrnul všechny knihovny. Samozřejmě že kdyby si nastavil správné parametry tak mu to vygeneruje daleko jednoduší kód. Nehledě toho že to do budoucna budou více toto řešení optimalizovat a vylepšovat.
11.10.2011 17:01 kralyk z abclinuxu | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
12.10.2011 13:47 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Google přibližuje světu jazyk Dart
Odpovědět | Sbalit | Link | Blokovat | Admin
Přiložím další polínko.
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.

Založit nové vláknoNahoru


ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.