JavaScript-Runt-Runtime Deno 2.0: Yeni sürüm Better Node.js?!

pembikbulut

Global Mod
Global Mod


  1. JavaScript-Runt-Runtime Deno 2.0: Yeni sürüm Better Node.js?!

Dört yılı aşkın bir süredir neredeyse her hafta şirketimin YouTube kanalında yeni bir video yayınladık ve zamanla bir veya diğer değerlendirmeyi bir veya diğer teknolojiye sundum. Bu şekilde, bunu hafifçe yapmıyorum, daha ziyade, gelecekte hangi teknolojilerin ne işe yarayabileceğini ve hangilerinin ne başlayacağını ve neyin başlamayacağı vb. Kendimi övmek istemeden, ilk aşamada gelecekteki eğilimleri ve gelişmeleri tanımak ve buna göre tahmin etmek için pasif bir elim olduğunu söyleyebilirim. Ancak elbette yanılıyorum.








Golo Roden, yerel web GmbH'nin kurucusu ve CTO'sudur. Olaylara ve hizmetlere dayalı olarak dağıtılmış mimarilere özellikle dikkat ederek web ve bulut uygulamalarının ve arıların anlayışı ve geliştirilmesi ile ilgilidir. Yol gösterici ilkesi, yazılımın gelişiminin kendi başına bir son olmaması, ancak her zaman aşağıda bir profesyonellik izlemesi gerektiğidir.







Bir yandan, tüm bakıma rağmen, bir yargı hatası üstleniyorsa, örneğin önemli bir yönü görmedim. Bununla birlikte, bu da olabilir, çünkü bazı teknolojiler o kadar çok değişti ki, bir süre sonra onları gerçekten yeniden değerlendirmem gerekiyor ve gerekirse önceki fikrimi gözden geçirmem gerekiyor. Ve bugün tam olarak böyle: Bugün DeNo'da yayınlanan sürüm 2 hakkında konuşmalıyız.

Çok fazla gösteri, çok düşük değil


Videolarımızı uzun zamandır takip ediyorsanız, Deno'daki ilk videoların neredeyse dört yıl önce olduğunu biliyorsunuz. O zaman, başlangıç noktası Ryan Dahl'ın JSCONF UE 2018'deki konferansı “Node.js için üzgünüm on şey” başlığıyla. O zaman bir ilk değerlendirme yaptım: Diğerlerinden farklı olarak, argümanını çok fazla kazanamadım. Bugüne kadar hiçbir şey değişmedi: Dürüst dersini buldum, içerik açısından zayıf ve bahsedilen konular zayıf.


Önerilen editoryal içerik



Rızanızla, burada harici bir YouTube videosu (Google Ireland Limited) burada davet edilir.



YouTube videosu her zaman yüklenir

YouTube videosu artık yüklüyor




Deno 2.0: En iyi Node.js?!




DeNo'nun o zamanındaki duyuru aşırı görünüyordu. Evet, Sandbox V8'in sürekli yararı gibi bir veya iki ilginç yön vardı, ancak zaten eski, alakasız veya iyi düşünülmüş olmayan yeterli noktalar vardı. Ryan Dahl'ın nasıl davrandığını eleştirdim: JavaScript geliştiricileri için dünyayı geliştirmekten gerçekten endişe duymuş olsaydı, (bence) sunucudaki JavaScript ekosistemini parçalamak yerine Node.js'de yer almalıdır.

Buna ek olarak, üzerimdeki tüm ileri pişmanlıklar, arka planda bir şirket inşa etmek için bir bahane gibi görünüyordu – bu açıkça tamamen meşru, ancak zevklerim için oldukça şeffaf değildi. Genel olarak, ders çok acıklı, çok dramatik, çok fazla gösteri ve çok az gerçek konu. Kısacası: Şu anda esas olarak sıcak hava düşündüğünü düşündüm.

Hızla orada, çabucak uzak


Peki ne demeliyim? En az altı yıl önce duyurudan DeNo düştü. Evet, kesinlikle Node.js'nin daha fazla geliştirilmesi üzerinde belirli bir etkisi vardır, ancak yönetilebilir olmalıdır. Bununla birlikte, Deno, JavaScript'in sunucudaki parçalanmasını başlattı ve şimdi bunlarla kötüleşti. Bunlardan bahsetmişken: Çok küçük ve yönetilebilir bir topluluktan bile hiçbir şey duyamazsınız ve çok fazla gösteri yapılır ve çok az teslim edilir. Şimdiye kadar Deno benim için çok fazla gösteri, çok fazla konuşma, küçük madde ve her şeyden önce bir şey – işe yaramaz.

İlginç olan şey, Ryan Dahl'ın o zamanlar açıkladığı şeylerin çoğunun, muhtemelen “kötü” olan büyük eleştirisi gibi, özellikle akıllı olmayan bir fikir olduğunu kanıtladığıdır. package.json-Bağımlılıkların Node.js. Söylenmeyen şey NPM için kötü, çünkü tüm bunlar temel bir tasarım hatası vb. Tüm bunları şimdi daha iyi yapmalısınız (ve “daha iyi” farklı olarak adlandırıldı). Görünüşe göre: NPM kesinlikle mükemmel değil, ama dünyalarla Ryan Dahl'ın onu o anda tasvir ettiğinden daha iyi. Sonunda, Deno'nun bağımlılıkları farklı yönetmeye çalıştığı tüm yaklaşımlar: uyumsuzluk ve – ironik bir şekilde – yeni sorunlar.

Belli bir noktada Deno'nun arkasındaki ekip, mevcut JavaScript ekosistemini görmezden gelmenin ve tamamen dışlamanın iyi bir fikir olmadığını fark ettiğinden, bu nedenle NPM için inversiyon ve entegre geçici desteği veren bir U -de'niz var. Ve aniden Deno artık tam bir ada çözümü değildi, ama yine de onunla çalışabilirsiniz. Ancak, çok işe yaramadı. NPM ile uyumluluk ve bu arada, node.js için de yavaş yavaş genişlemiş olmasının nedeni budur, çünkü neredeyse tüm temel arıların eksik değilse, farklı olarak adlandırılırsa veya farklı çalışırsa geçişin çekici olmadığını fark ettiniz.

Yeni olan her şey 2'yi gösteriyor 2


Deno yavaş yavaş iddia edilen ideallerinin çoğundan uzaklaştı ve şimdi muhtemelen çok kötü ve kusurlu olan her şeyin yüzde 90'ını desteklemeye çalışıyor. Bu, Ekim ayı başlarında Deno 2.0'ın yayınlanmasıyla sonuçlandı.

Bu, testi tekrar test etmem için yeterli bir nedendi. Ve çok fazla incelemem gerektiğini söylemeliyim: Deno 2, Deno'nun ilk versiyonu, Tamamen İlginçtir, çünkü nihayet akademik parmağın basit bir egzersizinden daha fazlasıdır ve onu Node.js için olası bir yedek olarak konumlandırabilecek birçok ilginç nokta sunar. Bunun zamanı bile olumlu, çünkü sorunlar düğüm için birikiyor. Videolarımızdan birinin başlığının yaklaşık altı ay önce olmasının nedeni budur: “Düğüm 22, arkadaş kalalım”. İyi Almanca: Artık seninle bir ilişki gibi hissetmiyorum, kırılacağım!

Ve şimdi Deno 2 devreye giriyor. DeNo 2'nin özel olanı, ekibin Node.js ve NPM ile uyumluluk eksikliğinin üstesinden gelmek için çok sorunlu olmasıdır. Deno 2'den Deno'yu Drop-in'in gerçek bir yerine kullanması mümkün. Sözdür: Node.js'de çalışan her şey de geyikle karşılaşır. Bu küçük ve büyük uygulamalar için geçerlidir ve next.js, Astro, Remix, Angular, ScsrentKit ve daha fazlası gibi birçok çerçeve alır – her şey kutudan çıkar. Ancak Deno sadece Node.js'in 1: 1'i bir kopyası haline gelmedi, ancak şimdi belirli bir anlamda “en iyi düğüm”.

Node.js ile karşılaştırıldığında deno


Node.js'nin sadece hayal edebileceği bir dizi özellik verdiğinizden (sadece sürüm 2'den değil): en tipik olarak (şimdi Node.js'de mevcuttur, ancak hala çok temel), birleştirilmiş bir format, entegre bir astar, bir tip kontrolü, bir test çerçevesi, önemli bir güvenlik kavramı, burada herhangi bir İnternet kodunun sorulmadan tam bir güven yoktur. Ve benzeri. Bütün bunlar 15 yıldır Node.j eksik. Ve Deno'nun her şeyi de çok hızlı ve iyi ağırlıklı olarak uygulanır.

Bir örnek: Deno'da, TypeScript kodu elle tamamlanmamalıdır, bu da uygulama başlar başlamaz DENO'yu otomatik olarak verir. Ancak performans nedenleriyle, TypeScript türü testi, parametre ile açıkça belirtilmedikçe ödenir -kontrol etmek gerekli. Aksine, tip testi testlerin yürütülmesinde aktiftir. Bu mantıklı: Geliştirme sırasında, son performans parçası önemli değilse, yürütme mümkün olduğunca iyi olduğunda, istenen türün güvenliği mümkündür. Ve güzel olan şey, test çerçevesinin zaten geyiklere dahil edilmesidir, bu yüzden hiçbir şey kurulmamalıdır.

Node.js şimdi de bazı yönler sunuyor, ancak çok zaman aldı ve alandan veya entegrasyondan Deno'ya gelmiyor. Ve Deno burada bitmiyor: Örneğin, test çerçevesi düğümün önemli ölçüde.

Ön planda basitlik


Tüm bu işlevler testleri gerçekleştirmek, kodun kapsamını belirlemek ve referans parametreleri DENO parçasına dahil edilmiştir. Yani tüm bunları kullanabilmek için tek bir araca ihtiyacınız var. Buna ek olarak, örneğin, sadece JavaScript ve TypeScript biçimlendirilmiş değil, aynı zamanda HTML, CSS ve YAML ile de entegre edilmiştir. Geniş bir Linner da, faaliyetlerin yürütülmesi için entegre bir çözüm, bir belge üreticisi ve gerçek parçalar oluşturmak için bir derleyici dahildir. İkincisi, Node.js'deki teoride de mümkündür, ancak işlevi kullanmak kesinlikle eğlenceli değildir.

Deno ayrıca bir web sunucusu, Jupyter dizüstü bilgisayarları ve çok daha fazlasını ve tüm bunları tek tip ve koordineli bir biçimde içerirken, düğümle her şeyi aramanız ve elle yapılandırmanız gerekir. Ve sonunda özellikle belirgin kulak 2: basitlik ve “sadece çalışır”.

Örneğin, NPM modülleri kullanan bir uygulamanız varsa, artık Deno'da bir “NPM kurulumu” gerçekleştirmek gerekmez. Deno, uygulama ilk kez başladığında gerekli modülleri otomatik olarak indirir. Arka planda o kadar iyi ve şeffaf bir şekilde çalışır ki, yarım saat sonra geliştiğinizde “NPM yüklemesi” gerçekleştirmeniz gerektiğini unuttunuz ve bir Node_Modules dizini veya kilit dosyasıyla karşılaşmanız gerekiyor. Ve tüm bunlar da inanılmaz derecede hızlı, Node.js altında gördüğüm paketlerin operatörü şimdiye kadar çantaları karşılaştırabilir. Bu gerçekten iyi çözüldü ve bu DeNo 2'nin ayrıldığı izlenimi: Node.js gibi görünüyor, ama sadece düşündü.

Deno düğüm gibi, tekrar düşündüm


Belki de Deno 1, son altı yılda kavramın sadece bir kanıtı olmuştur: yolculuğun gerçekte nereye gitmesi gerektiğini öğrenmek için güzel olmayan ama gerekli bir prototip ve Deno 2 şimdi gerçek ilk versiyon.

Ve saygımı dürüstçe ifade etmeliyim, çünkü Deno 2 büyük başarının ikinci bir versiyonu. Aniden TypeScript ile geliştirmek eğlencelidir, çünkü yüz farklı şeyi kurmak ve yapılandırmak gerekli değildir, ancak sadece bir editör açın, birkaç satır yazın ve gerçekleştirin. Ve biçimlendirilmiş. Ve test. Ve benzeri. Ve tüm bunlar bunun için hiçbir şey kurmak zorunda kalmadan.

Buna karşılık, Node.js gibi göründüğü gibi, bu büyük bir adımdır. Sonunda yine modern ve çağdaş görünüyor. Ve bu bağlamda şunu söylemeliyim: Çalışma zamanı ortamı vardır, TypeScript aniden çok komik. Teşekkürler, DANOT 2!


(RME)
 
Üst