Syntax | سینتکس – Telegram
POV:
وقتی برنامه نویس پایتون نیازی نیست نوع متغیرها و ساختارشون رو وارد کنه

تفاوت برنامه نویسان پایتون با سایر برنامه نویسان:
#fun

@Syntax_fa
😁16👍4🤣3
رنکینگ محبوب ترین زبان ها در حال حاضر

خب می تونید حدس بزنید. پایتون اوله مثل همیشه
بعدشم زبان سی، سی پلاس پلاس، جاوا و سی شارپ بدون تغییر نسبت به سال 2023 تو همون جایگاه خودشون هستن

جاوا اسکریپت و پی اچ پی یه خونه اومدن بالا تر

عجیب ترین رشد رو زبان اسکرچ داشته. نسبت به سال 23 رتبش از بیستم به دهم رسیده 😕

نکته بعدی اینه زبان پایتون، سی، سی پلاس پلاس و جاوا محبوبیتشون نسبت به گذشته کمتر شده و از بین پنج تا اول فقط سی شارپ رشد مثبت داشته

بیشترین رشد رو زبان سی شارپ کرده و بیشترین رشد منفی رو زبان سی

منبع:
https://www.tiobe.com/tiobe-index/

البته در نظر بگیرید توی وبسایت tiobe رنکینگ به این صورت هستش. ممکنه تو بقیه جاها متفاوت باشه

#Ranking

@Syntax_fa
👍13
This media is not supported in your browser
VIEW IN TELEGRAM
طراح UX:
این فیچر نیاز به توضیح نداره، واضحه

کاربر:

#Fun

@Syntax_fa
🤣21👍1😁1
کامپایلر 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
👍9
مقایسه زبان ها بر اساس
http server
pi digit
binary tree
nbody
json serialization

https://programming-language-benchmarks.vercel.app/

#Benchmark

@Syntax_fa
👍7
به این میگن رزومه

#Fun

@Syntax_fa
🤣294👍3🔥1
🔥8👍31
چند نکته درباره 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
👍8🔥1
انواع data type ها در پایتون

#Data_type #Python

@Syntax_fa
👍12
مسئله هفتم (پایتون)

سطح: ساده

ما همچین کدی را داریم:
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 زمانی…
پاسخ:

یکی از روش ها استفاده از کلاس ها هستش

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
لیست کامند های گیت

#Git

@Syntax_fa
👍15
This media is not supported in your browser
VIEW IN TELEGRAM
وقتی بعد چند وقت به پروژه های قبلیت سر میزنی تا یچیزی رو تغییر بدی

#Fun

@Syntax_fa
🤣171👍1
نظر پیرمرد خیاط نسبت به این ترندی که جدیدا تو لینکدین راه افتاده

#Fun

@Syntax_fa
😁23
وب سایت telemetr

یه وب سایت عالی برای آنالیز کانال تلگرامتون هستش.
همچنین می تونید بر اساس دسته بندی، پر بازدید ترین، بیشترین ویو و ... فیلتر کنید و کانالای مختلفو بررسی کنید.

لینک:
https://telemetr.io/en/channels

@Syntax_fa
👍6