POV:
وقتی برنامه نویس پایتون نیازی نیست نوع متغیرها و ساختارشون رو وارد کنه
تفاوت برنامه نویسان پایتون با سایر برنامه نویسان:
#fun
@Syntax_fa
وقتی برنامه نویس پایتون نیازی نیست نوع متغیرها و ساختارشون رو وارد کنه
تفاوت برنامه نویسان پایتون با سایر برنامه نویسان:
#fun
@Syntax_fa
😁16👍4🤣3
رنکینگ محبوب ترین زبان ها در حال حاضر
خب می تونید حدس بزنید. پایتون اوله مثل همیشه
بعدشم زبان سی، سی پلاس پلاس، جاوا و سی شارپ بدون تغییر نسبت به سال 2023 تو همون جایگاه خودشون هستن
جاوا اسکریپت و پی اچ پی یه خونه اومدن بالا تر
عجیب ترین رشد رو زبان اسکرچ داشته. نسبت به سال 23 رتبش از بیستم به دهم رسیده 😕
نکته بعدی اینه زبان پایتون، سی، سی پلاس پلاس و جاوا محبوبیتشون نسبت به گذشته کمتر شده و از بین پنج تا اول فقط سی شارپ رشد مثبت داشته
بیشترین رشد رو زبان سی شارپ کرده و بیشترین رشد منفی رو زبان سی
منبع:
https://www.tiobe.com/tiobe-index/
البته در نظر بگیرید توی وبسایت tiobe رنکینگ به این صورت هستش. ممکنه تو بقیه جاها متفاوت باشه
#Ranking
@Syntax_fa
خب می تونید حدس بزنید. پایتون اوله مثل همیشه
بعدشم زبان سی، سی پلاس پلاس، جاوا و سی شارپ بدون تغییر نسبت به سال 2023 تو همون جایگاه خودشون هستن
جاوا اسکریپت و پی اچ پی یه خونه اومدن بالا تر
عجیب ترین رشد رو زبان اسکرچ داشته. نسبت به سال 23 رتبش از بیستم به دهم رسیده 😕
نکته بعدی اینه زبان پایتون، سی، سی پلاس پلاس و جاوا محبوبیتشون نسبت به گذشته کمتر شده و از بین پنج تا اول فقط سی شارپ رشد مثبت داشته
بیشترین رشد رو زبان سی شارپ کرده و بیشترین رشد منفی رو زبان سی
منبع:
https://www.tiobe.com/tiobe-index/
البته در نظر بگیرید توی وبسایت tiobe رنکینگ به این صورت هستش. ممکنه تو بقیه جاها متفاوت باشه
#Ranking
@Syntax_fa
👍13
کامپایلر AOT و JIT
کامپایلر های Ahead Of Time مستقیم کد ما را تبدیل به machine code می کنند اما در کامپایلر های Just In Time کد ما تبدیل به یک کد میانی Bytecode می شود و در زمان اجرا توسط runtime engine هر قسمت از برنامه ما که مورد استفاده قرار می گیرد تفسیر می شود و تبدیل به machine code می شود.
چه زبان هایی از AOT و چه زبان هایی از JIT استفاده می کنند؟
زبان هایی مثل سی، سی پلاس پلاس و گولنگ AOT compilation هستند.
زبان هایی مثل جاوا، سی شارپ معمولا از JIT استفاده میکنند.
مقایسه این دو با هم:
در AOT بیلد کردن کد بیشتر طول می کشد اما در JIT سریع تر اتفاق میوفتد.
در AOT کد های ما به machine code تبدیل می شوند و قابلیت اجرا بصورت مستقیم را دارند اما در JIT توسط interpreter اجرا میشود. در این صورت اگر در JIT تکه کدی از ما اصلا مورد استفاده قرار نگیرد، تبدیل به ماشین کد هم نمی شود اما از آن طرف همیشه overhead وجود دارد که باید یک runtime engine داشته باشید تا کد های شما اجرا شود.
https://www.linkedin.com/pulse/ahead-of-time-compilation-vs-just-in-time-java-comparative-raj/
#Compiler
@Syntax_fa
کامپایلر های Ahead Of Time مستقیم کد ما را تبدیل به machine code می کنند اما در کامپایلر های Just In Time کد ما تبدیل به یک کد میانی Bytecode می شود و در زمان اجرا توسط runtime engine هر قسمت از برنامه ما که مورد استفاده قرار می گیرد تفسیر می شود و تبدیل به machine code می شود.
چه زبان هایی از AOT و چه زبان هایی از JIT استفاده می کنند؟
زبان هایی مثل سی، سی پلاس پلاس و گولنگ AOT compilation هستند.
زبان هایی مثل جاوا، سی شارپ معمولا از JIT استفاده میکنند.
مقایسه این دو با هم:
در AOT بیلد کردن کد بیشتر طول می کشد اما در JIT سریع تر اتفاق میوفتد.
در AOT کد های ما به machine code تبدیل می شوند و قابلیت اجرا بصورت مستقیم را دارند اما در JIT توسط interpreter اجرا میشود. در این صورت اگر در JIT تکه کدی از ما اصلا مورد استفاده قرار نگیرد، تبدیل به ماشین کد هم نمی شود اما از آن طرف همیشه overhead وجود دارد که باید یک runtime engine داشته باشید تا کد های شما اجرا شود.
https://www.linkedin.com/pulse/ahead-of-time-compilation-vs-just-in-time-java-comparative-raj/
#Compiler
@Syntax_fa
👍9
مقایسه زبان ها بر اساس
http server
pi digit
binary tree
nbody
json serialization
https://programming-language-benchmarks.vercel.app/
#Benchmark
@Syntax_fa
http server
pi digit
binary tree
nbody
json serialization
https://programming-language-benchmarks.vercel.app/
#Benchmark
@Syntax_fa
👍7
Syntax | سینتکس
مقایسه زبان ها بر اساس http server pi digit binary tree nbody json serialization https://programming-language-benchmarks.vercel.app/ #Benchmark @Syntax_fa
یه وب سایت دیگه که آقای سعید برای بنچمارکا معرفی کردن
https://www.techempower.com/benchmarks
#Benchmark
@Syntax_fa
https://www.techempower.com/benchmarks
#Benchmark
@Syntax_fa
www.techempower.com
TechEmpower Framework Benchmarks
Performance comparison of web application frameworks using community-contributed test implementations.
🔥6👍2
کدوم دوره رو میخواید؟
Final Results
68%
مینی دوره آموزش پیشرفته جنگو
32%
مینی دوره آموزش مقدماتی زبان گولنگ
🔥8👍3❤1
چند نکته درباره stack و heap
به صورت کلی می توان گفت value type ها مانند integer و boolean در stack ذخیره می شوند و reference type ها و دیتایی که ساختار پیچیده تری دارد در heap ذخیره می شوند(برای مثال در اکثر زبان های برنامه نویسی string در heap ذخیره می شود).
یکی از تفاوت های بزرگ بین stack و heap در این است که استک توسط CPU مدریت می شود. برای مثال اگر شما در یک فانکشن چند تا value type تعریف کنید، پس از اینکه از فانکشن خارج شدید بصورت خودکار از اخر به اول مقادیری که تعریف کردید حذف می شوند.
اما در reference type ها اتفاقی که می افتاد این است ما به عنوان مقدار آدرس حافظه آن را که در heap قرار دارد ذخیره می کنیم و وقتی که از داخل stack پاک می شود فقط آدرسی که داده بودیم پاک شده است و هنوز هم داخل heap وجود دارد.
مدریت heap توسط خود برنامه نویس و یا قابلیت garbage collector که در اکثر زبان های برنامه نویسی وجود دارد انجام می شود. اگر garbage collector موفق به آزاد کردن حافظه نشود باید خود برنامه نویس بصورت دستی این کار را انجام دهد در غیر این صورت memory leak اتفاق می افتد.
یکی از تفاوت های ترد و پراسس در این است که هر ترد برای خودش stack جدا دارد اما برخلاف پراسس heap جداگانه ای ندارد و از یک heap مشترک استفاده می کنند.
(چند تا نکته، شما توی کامنت اضافه کنید)
#stack #heap
@Syntax_fa
به صورت کلی می توان گفت value type ها مانند integer و boolean در stack ذخیره می شوند و reference type ها و دیتایی که ساختار پیچیده تری دارد در heap ذخیره می شوند(برای مثال در اکثر زبان های برنامه نویسی string در heap ذخیره می شود).
یکی از تفاوت های بزرگ بین stack و heap در این است که استک توسط CPU مدریت می شود. برای مثال اگر شما در یک فانکشن چند تا value type تعریف کنید، پس از اینکه از فانکشن خارج شدید بصورت خودکار از اخر به اول مقادیری که تعریف کردید حذف می شوند.
اما در reference type ها اتفاقی که می افتاد این است ما به عنوان مقدار آدرس حافظه آن را که در heap قرار دارد ذخیره می کنیم و وقتی که از داخل stack پاک می شود فقط آدرسی که داده بودیم پاک شده است و هنوز هم داخل heap وجود دارد.
مدریت heap توسط خود برنامه نویس و یا قابلیت garbage collector که در اکثر زبان های برنامه نویسی وجود دارد انجام می شود. اگر garbage collector موفق به آزاد کردن حافظه نشود باید خود برنامه نویس بصورت دستی این کار را انجام دهد در غیر این صورت memory leak اتفاق می افتد.
یکی از تفاوت های ترد و پراسس در این است که هر ترد برای خودش stack جدا دارد اما برخلاف پراسس heap جداگانه ای ندارد و از یک heap مشترک استفاده می کنند.
(چند تا نکته، شما توی کامنت اضافه کنید)
#stack #heap
@Syntax_fa
👍8🔥1
مسئله هفتم (پایتون)
سطح: ساده
ما همچین کدی را داریم:
تابع plus کارش این است که number را به علاوه یک کند.
چگونه می توانیم کاری کنیم که number زمانی که در تابع plus به علاوه یک می شود، موقع پرینت هم مقدارش بیشتر شده باشد؟
#Problems
@Syntax_fa
سطح: ساده
ما همچین کدی را داریم:
def plus(...):
...
if __name__ == "__main__":
number = ...
plus(number)
print(number)
تابع plus کارش این است که number را به علاوه یک کند.
چگونه می توانیم کاری کنیم که number زمانی که در تابع plus به علاوه یک می شود، موقع پرینت هم مقدارش بیشتر شده باشد؟
#Problems
@Syntax_fa
👍7👎2
Syntax | سینتکس
مسئله هفتم (پایتون) سطح: ساده ما همچین کدی را داریم: def plus(...): ... if __name__ == "__main__": number = ... plus(number) print(number) تابع plus کارش این است که number را به علاوه یک کند. چگونه می توانیم کاری کنیم که number زمانی…
پاسخ:
یکی از روش ها استفاده از کلاس ها هستش
روش بعدی استفاده از متغیر های گلوبال هستش:
#Problems
@Syntax_fa
یکی از روش ها استفاده از کلاس ها هستش
class MutableInteger:
def __init__(self, number):
self.number = number
def __add__(self, other):
self.number += other
def __str__(self):
return str(self.number)
def plus(number: MutableInteger):
number += 1
if __name__ == "__main__":
num = MutableInteger(1)
plus(num)
print(num)
روش بعدی استفاده از متغیر های گلوبال هستش:
def plus():
global number
number += 1
if __name__ == "__main__":
number = 1
plus()
print(number)
#Problems
@Syntax_fa
👍5
https://chrome.google.com/webstore/detail/eimadpbcbfnmbkopoojfekhnkhdbieeh
یه افزونه عالی کروم برای اینکه همه وب سایت هارو بصورت dark ببینید.
#Extension
@Syntax_fa
یه افزونه عالی کروم برای اینکه همه وب سایت هارو بصورت dark ببینید.
#Extension
@Syntax_fa
Google
Dark Reader - Chrome Web Store
Dark mode for every website. Take care of your eyes, use dark theme for night and daily browsing.
🔥7👍3