زبان برنامه نویسی مناسب برای big data
برای برنامه نویسی در حوزه Big data میتوان گفت محدویت زبانی وجود ندارد ولی با اندکی جستجو میتوان فهمید قدرت این 4 بازیگر از بقیه بیشتر است.
- Java
- Scala
- Python
- R
باید در نظر داشت که کار در big data شامل مراحل مختلفی می باشد و به نظر میاید که هر کدام از مراحل نیازمند سبک خاصی از ابزارها و زبانها می باشد. این مراحل را میشود به اینصورت در نظر گرفت:
- Acquire
- Store
- Analyze
- Visualize
- Manage
- Share
- Integrate
در آینده مطالبی را از هر کدام از حوزه ها ارائه خواهیم داد ولی برای شروع به صورت خاص یکی از پلتفرمهای بسیار رایج برای کار با big data به نام apache spark که بسیار فراگیر شده است را در نظر میگیریم و برای پاسخ به اینکه کدام زبان زبان برنامه نویسی برای آن بیشتر توصیه شده است پاسخی از جیم اسکات (دارای پربازدید ترین مطالب در quora برای scala) در ادامه آورده خواهد شد.
""" برخی از مردم دلیل انتخاب اسکالا بیش از پایتون را در کارایی اسکالا در هنگام استفاده می بینند. من قصد دارم مطالبی را به شما بگویم تا نگرانی های خود را در مورد سرعت کنار بگذارید. هر کس در جهان می داند که زبانهایی که کامپایل میشوند سریع تر از زبان هایی هستند که تفسیر می شوند. این بحث دیگر ارزشی ندارد.
مورد با ارزش تر در نظر گرفتن آنچه هست که برای شما مهم است. آیا کارکنان شرکت شما اسکالا و پایتون به یک اندازه می دانند؟ سپس اسکالا استفاده کنید. آیا برنامه نویسانتان پایتون را بهتر از اسکالا می شناسند؟ سپس پایتون استفاده کنید.
دلیلی که من پایتون را پیشنهاد میدهم در این مورد، آن است که: بسیار مهم تر است که بتوانیم سریع تر به راه حل برسیم نه اینکه راه حل را سریعتر اجرا کنیم! اگر کد شما 10% کندتر اجرا شود، ولی سه تا ده برابر سریع نوشته شود حتما به سراغ پایتون خواهید رفت. چون نیروی انسانی و زمان از سخت افزار بسیار ارزشمند تر و پرهزینه تر میباشد. در حال حاضر، صادقانه من واقعا از طرفداران اسکالا هستم. من شما را تشویق می کنم که رسیدن به حل مسئله و به دست آوردن راه حل را در الویت قرار دهید. بعد از اینکه به راه حل رسیدید میتوانید مجدد و با سرعت چند برابر آن را در سایر پلتفرمها دوباره نویسی یا مقیاس پذیر کنید."""
به نظر میاید این جواب بیشتر مختص مرحله Analyze و کارهای الگوریتمی می باشد. در ادامه مقالات سعی میکنیم از سایر فعالان این حوزه در بخشهای مختلف نظراتی را ارائه دهیم ولی باید در نظر داشت که اکثر ابزارهای این حوزه با Java یا Scala پیاده سازی شده است و برای درک بیشتر باید به آنها نیز پرداخت لذا در دوره Big Data و سکوهای پردازش توزیع شده که در لایتک برگزار خواهد شد حتما مباحث Java Core بررسی شده و سپس وارد بحث Big data خواهیم شد.