5 programming language trends to look for in the next 10 years:
1. Moving (back) from developer comfort to code efficiency. We've created an insane amount of unnecessary abstractions in the name of "making developer's life easier". So much so that only a fraction of total computing power is spent to do the actual work in traditional software systems, the rest is simply wasted to deal with abstractions. With the current generation of computer hardware reaching to its maximum potential, the only real way to improve performance is gonna be making the software more efficient by chopping of as much unnecessary layers as possible, unless a breakthrough happens in hardware industry.
2. Immutability and statelessness. As they say, "Shared state is the root of all evil". Search the phrase and you'll find way more information than I could ever write here. My point is, even systems engineers (who usually loves to deal with nasty stuff) are getting tired of shared state shenanigans and I think they are gonna be the ones that will convert much of existing infrastructure to immutable.
3. Moving stuff from runtime to compile time as much as possible. With ideas coming from fields like Type Theory and Abstract Algebra in general, now we can predict a reasonably wide domain of "bad" program behaviours before actually running it. The best part is, we can completely eliminate most of them in compile time by adding new rules which we can guarantee that won't lead to such "bad" states. Current implementation of memory management in Rust is a great example of this approach.
4. New approach to concurrency and parallelism. Although general-purpose operating systems are fairly good at performing various kind of tasks, fairly good is not good enough for specific applications. A classic example is concurrency and parallelism. Although OS-level active units like processes and threads are good for average OS-level tasks, they are too heavy and not flexible enough to be directly used in modern languages with very dynamic behaviour. So, more and more languages are coming up with their own solutions often in the form of language-level units that are very light and flexible alternative of OS-level threads. Also it's worth mentioning that this kind of approach often involves some sort of tricks to make resources like CPU time and memory pages more predictable, which the underlying OS developers wouldn't appreciate. After all, language developers want their program to perform better, where OS developers want the whole system to perform better.
5. Rise of multi-mode languages. Compilers can do hell lot of optimization for you, but it usually makes compiling process much longer. On the other hand, you only need such fine-tuned software in production environments. Unoptimized and rough version of the same software (which can be compiled much faster) is usually good enough for various kinds of testing and debugging purposes. So, why not give developers an option to chooses how much optimized result they want? Of course, both compiled and interpreted languages are doing a bunch of tricks to achieve something similar, but I think solutions in the next 10 years is gonna be more fundamental. Maybe, a language that is normally interpreted, but can compile the code to executable when it's ready for production.
1. Moving (back) from developer comfort to code efficiency. We've created an insane amount of unnecessary abstractions in the name of "making developer's life easier". So much so that only a fraction of total computing power is spent to do the actual work in traditional software systems, the rest is simply wasted to deal with abstractions. With the current generation of computer hardware reaching to its maximum potential, the only real way to improve performance is gonna be making the software more efficient by chopping of as much unnecessary layers as possible, unless a breakthrough happens in hardware industry.
2. Immutability and statelessness. As they say, "Shared state is the root of all evil". Search the phrase and you'll find way more information than I could ever write here. My point is, even systems engineers (who usually loves to deal with nasty stuff) are getting tired of shared state shenanigans and I think they are gonna be the ones that will convert much of existing infrastructure to immutable.
3. Moving stuff from runtime to compile time as much as possible. With ideas coming from fields like Type Theory and Abstract Algebra in general, now we can predict a reasonably wide domain of "bad" program behaviours before actually running it. The best part is, we can completely eliminate most of them in compile time by adding new rules which we can guarantee that won't lead to such "bad" states. Current implementation of memory management in Rust is a great example of this approach.
4. New approach to concurrency and parallelism. Although general-purpose operating systems are fairly good at performing various kind of tasks, fairly good is not good enough for specific applications. A classic example is concurrency and parallelism. Although OS-level active units like processes and threads are good for average OS-level tasks, they are too heavy and not flexible enough to be directly used in modern languages with very dynamic behaviour. So, more and more languages are coming up with their own solutions often in the form of language-level units that are very light and flexible alternative of OS-level threads. Also it's worth mentioning that this kind of approach often involves some sort of tricks to make resources like CPU time and memory pages more predictable, which the underlying OS developers wouldn't appreciate. After all, language developers want their program to perform better, where OS developers want the whole system to perform better.
5. Rise of multi-mode languages. Compilers can do hell lot of optimization for you, but it usually makes compiling process much longer. On the other hand, you only need such fine-tuned software in production environments. Unoptimized and rough version of the same software (which can be compiled much faster) is usually good enough for various kinds of testing and debugging purposes. So, why not give developers an option to chooses how much optimized result they want? Of course, both compiled and interpreted languages are doing a bunch of tricks to achieve something similar, but I think solutions in the next 10 years is gonna be more fundamental. Maybe, a language that is normally interpreted, but can compile the code to executable when it's ready for production.
👍14
Mobile internetni yoqasan, o'lgudek sekin. fast.com'ga kirib tekshirib ko'rasan, yaxshi ishlayapti deydi. Keyin VPN bilan qaytadan kirib ko'rasan, endi sekin ko'rsatishni boshlaydi. Qolgan saytlarga kirib ko'rasan, bir xil ishlayapti. VPNda muammo yo'q, o'z-o'zidan 1 ta variant qoladi: ataylab sekinlatishayapti. "Mana, zo'r ishlayapti" deyish uchun faqat fast.com'ni tez ochib berishadi. O'ynab qo'yay bundaychikin operatorlaringga.
👍23😁14
Engineering Notes
5 programming language trends to look for in the next 10 years: 1. Moving (back) from developer comfort to code efficiency. We've created an insane amount of unnecessary abstractions in the name of "making developer's life easier". So much so that only a…
Alright, let's discuss. Leave your opinion in the comments about these 5 points (why it might or might not be the case). Also, you can introduce your own predictions for incoming PL trends.
By the way, I've watched Hussein's OS course recently. In short, I'm not satisfied with the course. I was expecting it to be way better considering the time it took to be released. I'll try to write a detailed review later on.
👍6😢2
Universitet tomonidan tashkillashtirilgan "Integrable Systems Related to Reflection Groups in Algebra, Geometry and Topology" mavzusida o'tkazilayotgan yozgi maktabda qatnashayapman. Anchadan beri pure math bilan shug'ullanmay qo'yganim sezilayapti. Mavzularni yaxshi tushunish va orqada qolib ketmaslik uchun anchagina mehnat qilishga to'g'ri kelayapti.
👍21😢3
Forwarded from samdark blog ☕️ (Alexander Makarov)
👷Microservices are not silver bullet
👎 You likely don't need microservices if:
1. You aren't ready to handle increased complexity: more infrastructure💰, more error handling, extra tools for debugging and logging 🧠
2. You aren't familiar with bounded contexts and think that "micro" in a microservice is about "doing one job" 🤯
3. You have no problems that microservices solve.
👍 You likely need microservices if:
1. You have multiple teams working on the same code base and there are constant conflicts. Responsibilities are not clear 😖
2. Some parts of the systems have slightly different performance and durability requirements ⚡️
3. The system overall is too complex so you need big abstractions 🧠
4. You want part of the system to use different tech stack.
#microservices #architecture
👎 You likely don't need microservices if:
1. You aren't ready to handle increased complexity: more infrastructure💰, more error handling, extra tools for debugging and logging 🧠
2. You aren't familiar with bounded contexts and think that "micro" in a microservice is about "doing one job" 🤯
3. You have no problems that microservices solve.
👍 You likely need microservices if:
1. You have multiple teams working on the same code base and there are constant conflicts. Responsibilities are not clear 😖
2. Some parts of the systems have slightly different performance and durability requirements ⚡️
3. The system overall is too complex so you need big abstractions 🧠
4. You want part of the system to use different tech stack.
#microservices #architecture
👍11👎4😢1
Yaqinda kimdir shu mavzuda savol so'ragandi, hozir kimligini eslay olmaganim uchun linkni kanalga qo'yayapman.
https://youtu.be/7G4ipM2qjfw?si=bbX58y4sHJd5Gd1e
https://youtu.be/7G4ipM2qjfw?si=bbX58y4sHJd5Gd1e
YouTube
Connecting Solar to the Grid is Harder Than You Think
A lot of the interesting challenges with renewables are happening behind the scenes.
🌌Get Nebula using my link for 40% off an annual subscription: https://go.nebula.tv/Practical-Engineering
🎈Watch The Balloon Escape: https://nebula.tv/videos/neo-the-balloon…
🌌Get Nebula using my link for 40% off an annual subscription: https://go.nebula.tv/Practical-Engineering
🎈Watch The Balloon Escape: https://nebula.tv/videos/neo-the-balloon…
👍3🍾3
JR TwitGram 🥂
O’z ishini yoqtirmasa nima bo’ladi?
Boshida o’zini majburlaydi. Keyin majburlashga kuch va sabr qolmaydi. Qilayotgan ishining sifati tushishni boshlaydi. Ohir oqibat yoki ishdan o’zi ketadi yoki kuzatib qo’yishadi.
Boshida o’zini majburlaydi. Keyin majburlashga kuch va sabr qolmaydi. Qilayotgan ishining sifati tushishni boshlaydi. Ohir oqibat yoki ishdan o’zi ketadi yoki kuzatib qo’yishadi.
Ko'pchilik adashadigan narsa Jahongir aka aytayotgan ishini yoqtirmaslik bilan o'z ishiga "passion" yo'qligi orasida katta farq borligi. Ba'zilar bir sohaga kirib, ozgina vaqtdan keyin bu soha mengamas ekan deb chiqib ketadi. Buni qanday bilding deb so'rasangiz "falonchi akaga o'xshab maza qilib o'rgana/ishlay olmadim" deydi, ya'ni harakat qilsa qo'lidan keladi lekin *hozircha* passion yo'q. Menimcha sohaga haqiqiy mehr (ya'ni ular izlayotgan passion) shu sohaga minglab soat vaqt sarflagandan keyin, vaqt o'tishi bilan keladi.
Masalan, men biznesni yoqtirmayman, lekin 3-4 yil shu sohada qattiq mehnat qilsam ishonchim komil, ishimdan rohat olishni boshlayman. Lekin masalan, 3-4 yil filolog bo'lib ishlasam ham baribir bu soha yoqmaydi keyinchalik ham. Yoki Chomskyga o'xshab linguistikani ham konkret model sifatida ko'rishni boshlayman😂
Masalan, men biznesni yoqtirmayman, lekin 3-4 yil shu sohada qattiq mehnat qilsam ishonchim komil, ishimdan rohat olishni boshlayman. Lekin masalan, 3-4 yil filolog bo'lib ishlasam ham baribir bu soha yoqmaydi keyinchalik ham. Yoki Chomskyga o'xshab linguistikani ham konkret model sifatida ko'rishni boshlayman😂
👍20
Great overview of convolution neural networks:
https://www.youtube.com/watch?v=UZDiGooFs54
https://www.youtube.com/watch?v=UZDiGooFs54
YouTube
The moment we stopped understanding AI [AlexNet]
Thanks to KiwiCo for sponsoring today's video! Go to https://www.kiwico.com/welchlabs and use code WELCHLABS for 50% off your first month of monthly lines and/or for 20% off your first Panda Crate.
Activation Atlas Posters!
https://www.welchlabs.com/res…
Activation Atlas Posters!
https://www.welchlabs.com/res…
👍3
Engineering Notes
Aytgancha, yaqinda Hussein Nasser Udemyda Operating Systems bo'yicha kurs chiqaradi. Kursni yozish boshlangandan beri o'tgan vaqt va chiqqan teaserlarga qaraganda zo'r kurs bo'lsa kerak. Shu kurs chiqsa kanalda 3-4 kishiga gift qilishni o'ylab turibman. Stay…
Oldinroq Husseinning OS kursini 3-4 kishiga sovg'a qilaman degandim. Kursning sifatini ko'rib bu kursni yana 3-4 kishiga olish unchalik yoqmayapti. Nimani tavsiya qilasizlar?
👀2
6-7 oydan beri LinkedInga kirmayotgandim, bugun qayta kirib ko'rdim. Cringe bo'yicha TikTokdan ham o'tib ketibdi.
😢24👍6👀3
Dasturlash sohasiga oid o'zbekcha resurslarni ko'paytirish tarafdoriman, lekin terminlarni ko'r-ko'rona tarjima qilishga qarshiman. Database – berilganlar ba'zasi, list – ro'yxat, class – toifa, bunaqa terminlarni tarjima qilish butunlay keraksiz va cringe deb hisoblayman. Bir ustozim aytgandi, 89-yil o'zbek tiliga davlat tili maqomi berilganidan keyin shunchalik "o'zbeklashib" ketganmiz-ki, gazetalarda traktor "o'rmalovchi" deb nomlanishni boshlagan deb. Bizda ham ba'zi terminlarni "o'rmalovchi" qilib yuborishayapti.
👍41😁11👎3👀2
Engineering Notes
Oldinroq Husseinning OS kursini 3-4 kishiga sovg'a qilaman degandim. Kursning sifatini ko'rib bu kursni yana 3-4 kishiga olish unchalik yoqmayapti. Nimani tavsiya qilasizlar?
Bu kursning o'rniga 3 kishiga Jahongir akaning "Building your own Python web framework" kursini sovg'a qilmoqchiman. Bu kurs sizga nega kerakligi haqida qisqa komment qoldiring. 1 bet insho shart emas, 1-2 ta gap yetadi. Ertaga kursni so'raganlar orasidan 3 kishini tanlab olaman.
👍32
Engineering Notes
Bu kursning o'rniga 3 kishiga Jahongir akaning "Building your own Python web framework" kursini sovg'a qilmoqchiman. Bu kurs sizga nega kerakligi haqida qisqa komment qoldiring. 1 bet insho shart emas, 1-2 ta gap yetadi. Ertaga kursni so'raganlar orasidan…
3 kishi tanlab, kursga access berildi. Kimlar yutganini commentda ko'rsangiz bo'ladi. Hammaga rahmat.
👍14
Oxirgi paytlarda 1-2 ta o'zi ham tushunmaydigan conference yoki hackatonlarda qatnashib, o'zini zo'r mutaxassis deb hisoblaydiganlar ko'payib ketayapti. Umrida bir qator kod yozmagan IT project managerlar, matematikani bilmaydigan AIchilar, bittagina prezentatsiya bilan falon so'm yutib olgan ixtirochilar, umrida startup qilib ko'rmagan startup maslahatchilar, ... . 2-3 tasi bilan gaplashib ko'rdim, nuqul osmondan keladi, lekin gapida ma'no yo'q. Lekin shular mediaga chiqib oddiy xalq tushunmaydigan 2-3 ta termin qo'shib gapirsa odamlar "o'g'lim/qizim shunga o'xshasin" deb comment yozadi. Menga nima, o'zlarini xursand qilib yuraversin deyman-u, lekin hamma e'tibor shularda bo'lgani uchun aslida qo'lidan ish keladigan yoshlar soyada qolib ketayapti. Aslida shu qo'lidan ish keladigan qatlam haqli bo'lgan imkoniyatlar haligi "mutaxassis"larga berilib, bir tiyinga qimmat ishlarga sovurilib ketayapti.
Bu postni ko'rolmaslik deb hisoblasangiz, mayli, shunday bo'lsin.
Bu postni ko'rolmaslik deb hisoblasangiz, mayli, shunday bo'lsin.
👍91😁13🍾1
Engineering Notes
Oxirgi paytlarda 1-2 ta o'zi ham tushunmaydigan conference yoki hackatonlarda qatnashib, o'zini zo'r mutaxassis deb hisoblaydiganlar ko'payib ketayapti. Umrida bir qator kod yozmagan IT project managerlar, matematikani bilmaydigan AIchilar, bittagina prezentatsiya…
Va shaxsan men bunaqalarni haligi infolo'ttivozlardan ham xavfliroq deb hisoblayman jamiyat uchun. Soxta biznes trenerlar sodda odamlarning ishonchiga kirib, sodda xalqni shilgan bo'lsa bular davlatning ishonchiga kirayapti.
👍25
Ikkita turdagi dasturchilar bor: Birinchisi sohadan faqat tirikchilik qiladiganlar va ikkinchisi shu bilan birga sohaning o'zini rivojlantiradiganlar. O'quv markazlarga va kurs yozadigan ustozlarga iltimos: mayli, ularni birinchi toifaga kirishga tayyorlang, lekin hech bo'lmasa ikkinchi toifa ham borligini va dasturlashni dasturlash qilib turganlar aynan o'shalar ekaniniyam eslab o'tinglar.
👍40👀8🍾2
Engineering Notes
Ikkita turdagi dasturchilar bor: Birinchisi sohadan faqat tirikchilik qiladiganlar va ikkinchisi shu bilan birga sohaning o'zini rivojlantiradiganlar. O'quv markazlarga va kurs yozadigan ustozlarga iltimos: mayli, ularni birinchi toifaga kirishga tayyorlang…
Noldan boshlab ikkinchi turga qarab harakat qilish uchun men biladigan ikkita variant bor: Universitet va self-study.
Hozir ko'pchilikka yoqmaydigan gap aytaman. Bizdagi o'quv markazlarida bularni o'rganishning shunchaki iloji yo'q. Nima qilsangiz ham o'quv markazlari rasvosi chiqib bo'lgan o'rta ta'limning qaysidir darajada o'rnini bosish uchun qurilgan sistema. O'quv markazida computer siencedagi formalizatsiya, tartiblangan sistema yo'q. Bo'lmaydi ham, sababi bunaqa sistema o'rnatish uchun 2-3 yillik kurslar bo'lishi kerak, xuddi universitetdagidek. Kecha "4 yillik universitetdan ko'ra 6 oylik kursimizda ko'proq narsa o'rganasiz" deb reklama qilib bugun o'zi universitet sistemasini qo'llash uchun eng oldin uyalmaydigan, qalin bashara kerak bo'ladi. Keyin universitet ochib unda o'quv markazlarining programmasini o'tishdan ham foyda yo'q. Masalan, IT Park University va PDP University xuddi shu ishni qilayapti hozir.
Yaxshi universitetda o'qish. O'sha ko'pchilik keraksiz deb hisoblayotgan universitetdagi fanlar aslida dasturlashning asosini tashkil qiladi. Plus, u yerda ertaga pul topish birinchi planga chiqarilmaydi. Pulni vaqtincha hayoldan chiqarib, sohaning o'zini o'rganishga imkoniyat bo'ladi.
Self study. Faqat tutoriallar, computer science asoslari o'rgatiladigan lecturelar va sohasini yaxshi tushunadigan odamlarning talklarini ko'rish orqali. Lecturelar uchun boshlanishiga Youtubedagi Harvard yoki MIT recorded lecturelari yaxshi variant.
Hozir ko'pchilikka yoqmaydigan gap aytaman. Bizdagi o'quv markazlarida bularni o'rganishning shunchaki iloji yo'q. Nima qilsangiz ham o'quv markazlari rasvosi chiqib bo'lgan o'rta ta'limning qaysidir darajada o'rnini bosish uchun qurilgan sistema. O'quv markazida computer siencedagi formalizatsiya, tartiblangan sistema yo'q. Bo'lmaydi ham, sababi bunaqa sistema o'rnatish uchun 2-3 yillik kurslar bo'lishi kerak, xuddi universitetdagidek. Kecha "4 yillik universitetdan ko'ra 6 oylik kursimizda ko'proq narsa o'rganasiz" deb reklama qilib bugun o'zi universitet sistemasini qo'llash uchun eng oldin uyalmaydigan, qalin bashara kerak bo'ladi. Keyin universitet ochib unda o'quv markazlarining programmasini o'tishdan ham foyda yo'q. Masalan, IT Park University va PDP University xuddi shu ishni qilayapti hozir.
Yaxshi universitetda o'qish. O'sha ko'pchilik keraksiz deb hisoblayotgan universitetdagi fanlar aslida dasturlashning asosini tashkil qiladi. Plus, u yerda ertaga pul topish birinchi planga chiqarilmaydi. Pulni vaqtincha hayoldan chiqarib, sohaning o'zini o'rganishga imkoniyat bo'ladi.
Self study. Faqat tutoriallar, computer science asoslari o'rgatiladigan lecturelar va sohasini yaxshi tushunadigan odamlarning talklarini ko'rish orqali. Lecturelar uchun boshlanishiga Youtubedagi Harvard yoki MIT recorded lecturelari yaxshi variant.
👍66👎5🍾1
Bugunga yetarli asabbuzarlik qildik, endi dam olish uchun quiz:
Sizda 2 ta batareyka ketadigan chiroq (fonar) va ko'rinishi bir xil bo'lgan 8 ta batareyka bor. Batareykalardan 4 tasi ishlaydi, 4 tasi ishlamaydi. Chiroq yonishi uchun unga 2 ta (ikkalasiyam) ishlaydigan batareyka qo'yish kerak. Savol: 2 ta ishlaydigan batareykani topish uchun eng ko'pi bilan necha marta test qilib ko'rish yetarli bo'ladi? Ikkita ixtiyoriy batareykani chiroqqa qo'yib tekshirib ko'rish bitta test hisoblanadi va oxirgi, ikkita ishlaydigan batareykani tanlab qo'yib ko'rish ham test sifatida sanaladi.
Sizda 2 ta batareyka ketadigan chiroq (fonar) va ko'rinishi bir xil bo'lgan 8 ta batareyka bor. Batareykalardan 4 tasi ishlaydi, 4 tasi ishlamaydi. Chiroq yonishi uchun unga 2 ta (ikkalasiyam) ishlaydigan batareyka qo'yish kerak. Savol: 2 ta ishlaydigan batareykani topish uchun eng ko'pi bilan necha marta test qilib ko'rish yetarli bo'ladi? Ikkita ixtiyoriy batareykani chiroqqa qo'yib tekshirib ko'rish bitta test hisoblanadi va oxirgi, ikkita ishlaydigan batareykani tanlab qo'yib ko'rish ham test sifatida sanaladi.
👍3😁1