ايتنا - پربيننده ترين عناوين برنامه نويسي :: rss_full_edition http://itna.ir/programming Sat, 29 Jul 2017 19:13:11 GMT استوديو خبر (سيستم جامع انتشار خبر و اتوماسيون هيئت تحريريه) نسخه 3.0 http://itna.ir/skins/default/fa/{CURRENT_THEME}/ch01_newsfeed_logo.gif تهيه شده توسط سايت خبری فناوری اطلاعات (ايتنا) http://itna.ir/ 100 70 fa نقل و نشر مطالب با ذکر نام سايت خبری فناوری اطلاعات (ايتنا) آزاد است. Sat, 29 Jul 2017 19:13:11 GMT برنامه نويسي 60 پشتیبانی اندروید از زبان برنامه نویسی کوتلین http://itna.ir/fa/doc/news/49001/پشتیبانی-اندروید-زبان-برنامه-نویسی-کوتلین گوگل رسماً از زبان برنامه‌نویسی کوتلین روی سیستم عامل اندروید پشتیبانی می‌کند. کوتلین زبان برنامه‌نویسی بسیار جدیدی است که شرکت جت‌برینز آن را طراحی کرده است.کوتلین از نظر ساختاری با جاوا شباهت‌های زیادی دارد، از جمله اینکه شی‌ء‌گرا است و برای رفع همان مسائلی که جاوا مأموریت داشت، طراحی شده است. اما چون از خیلی جهات هنوز مثل یک لوح سفید است و ظرفیت‌های زیادی دارد، قابلیت‌های خوب متعددی را می‌توان به آن افزود و سینتکس آن را مرتب‌تر کرد و بهبودهایی بیش از آنچه در جاوا می‌بینیم را به آن بخشید. به گزارش ایتنا از رایورز به نقل از ونچربیت، گوگل در کنفرانس توسعه دهندگان 2017 اعلام کرد که «کوتلین، یک پروژه منبع باز تحت لیسانس آپاچی 2.0 است، یک طراحی عالی و زبان بالغ دارد و ما بر این باوریم که توسعه اندروید را سریع‌تر و جذاب‌تر خواهد کرد.» این شرکت اظهار داشت که بعضاً شاهد آن هستیم که این زبان برنامه‌نویسی برای تولید اپلیکیشن مورد استفاده قرار می‌گیرد که ایکس‌پدیا، فلیپ‌برد و اسکوئر از نمونه‌های این اپلیکیشن‌ها هستند. استفاده گوگل از تیم کوتلین باعث ساده‌تر شدن نوشتن اپلیکیشن‌های اندروید شده است. توسعه دهندگان از این که بدانند که کامپایلر کوتلین، کد بایتی جاوا را منتشر می‌کند، خوشحال خواهند شد. کوتلین و جاوا تقریباً یکی هستند. در واقع، علت اصلی تمایل تیم اندروید به سمت زبان برنامه‌نویسی کوتلین، هم شباهت‌های جاوا و کوتلین بود؛ بدین معنا که شما می‌توانید کوتلین را به پایگاه کد خود اضافه کنید و دو زبان جاوا و کوتلین را آزادانه با هم ترکیب نمایید. اولین بار حضور کوتلین در بین زبان‌های برنامه‌نویسی در ژوئیه 2011 اعلام شد و نسخه 1.0 در فوریه 2016 در دسترس کاربران قرار گرفت. در آن زمان، جت‌برینز متعهد شد که سازگاری این زبان با ویژگی‌های پایدار 1.0 به بعد حفظ خواهد شد. کاربران علاقه‌مند، برای شروع کار با کوتلین می‌توانند پیش نمایش اندروید استودیو 3.0 را دانلود کنند، یکی از فایل‌های جاوای خود را انتخاب کنند و سپس گزینه تبدیل فایل جاوا به فایل کوتلین را در منوی کد انتخاب کنند. با این کار فایل شما به فایل کوتلین تبدیل شده و می‌توانید به راحتی با آن کار کنید.  ]]> برنامه نويسي Sat, 20 May 2017 10:47:47 GMT http://itna.ir/fa/doc/news/49001/پشتیبانی-اندروید-زبان-برنامه-نویسی-کوتلین تصاحب شرکت بات‌ساز API.AI توسط گوگل http://itna.ir/fa/doc/news/45645/تصاحب-شرکت-بات-ساز-api-ai-توسط-گوگل گوگل به‌تازگی اعلام کرده که گروه تحقیقاتی شرکت API.AI را تصاحب نموده است. گفتنی است شرکت API.AI ابزارهایی برای توسعه‌دهندگان فراهم می‌سازد تا به آنها کمک نماید بات‌های دستیار صوتی مربوط به مکالمه و سیری‌مانند ایجاد نمایند.به گزارش ایتنا از رایورز به نقل از techradar، با اینکه قیمت و مفاد این تصاحب هنوز معلوم نیست؛ اما API.AI تا به امروز توانسته است ۸ میلیون و ۶۰۰ هزار دلار جذب سرمایه داشته باشد.بنابر شمارنده‌ای که API.AI در صفحه اصلی وب‌سایت خود قرار داده، این شرکت تا امروز، به اندکی بیشتر از ۳ میلیارد درخواست API رسیدگی کرده است. در این میان، گوگل می‌گوید بیش از ۶۰ هزار توسعه‌دهنده توانسته‌اند با استفاده از مجموعه ابزارهای API.AI، چیزهای مختلفی درست کنند.ما به‌عنوان انسان، قابلیت برقراری ارتباطات را داریم. مثلاً اگر کسی بگوید: «من مردی با دوربین دوچشمی دیدم»، معمولاً از لحن و شرایط صحبت استفاده می‌کنیم تا متوجه شویم که منظور وی، این بوده که با دوربین دوچشمی کسی را دیده، یا کسی را دیده که دوربین دوچشمی حمل می‌کرده است.اما اگر بخواهیم به به یک روبات آموزش بدهیم که همین کار را انجام بدهد، با چالش بسیار بزرگی روبه‌رو خواهیم بود و باید ابهام‌های احتمالی را هم به‌حساب بیاوریم (منظور از «دستم را بگیر»، این است، کمک مالی است، یا اینکه واقعاً باید دستی گرفته شود؟) همچنین، این یک واقعیت است که روش‌های بی‌شماری برای گفتن یک مطلب وجود دارد و بدین‌ترتیب، چالش گفته شده حتی بزرگتر هم می‌شود.اما شرکت API.AI به توسعه‌دهندگانی که روبات پدید می‌آورند، کمک می‌کند تا با فراهم کردن ابزارهایی برای اختراع دوباره چرخ، بتوانند بر این چالش فائق بیایند.APIهای این شرکت، کارهایی از قبیل تشخیص صحبت، تشخیص قصد و نیت، و مدیریت زمینه و محتوا را انجام می‌دهند و به برنامه‌نویسان کمک می‌کنند تا دانش خاص مربوط به هر حوزه را به بات‌ها یاد بدهند؛ چرا که به این دانش احتیاج فراوان دارند («پرچرب» و «آبدار»، احتمالاً برای روبات‌هایی که کار تحویل غذا انجام می‌دهند، یک معنی داشته باشند).گفتنی است در حال حاضر، فناوری API.AI با ۱۵ زبان و لهجه سازگاری دارد از جمله انگلیسی، چینی، فرانسه، آلمانی و اسپانیایی.  ]]> برنامه نويسي Sat, 01 Oct 2016 11:24:11 GMT http://itna.ir/fa/doc/news/45645/تصاحب-شرکت-بات-ساز-api-ai-توسط-گوگل جاوا-اسکریپت دوباره محبوب‌ترین زبان برنامه‌نویسی جهان شد http://itna.ir/fa/doc/news/48480/جاوا-اسکریپت-دوباره-محبوب-ترین-زبان-برنامه-نویسی-جهان با اینکه پلتفرم‌های گوناگونی برای تولید و توسعه نرم‌افزار وجود دارد، اما برخی از زبان‌ها به دلیل جایگاه ویژه‌ای که نزد توسعه‌دهندگان یافته‌اند، همچنان جایگاه خود را پس از گذشت سال‌ها نگهداشته‌اند. جاوا-اسکریپت همچنان محبوب‌ترین زبان برنامه‌نویسی برای کارشناسان نرم‌افزار محسوب می‌شود. این خبر را مرکز Stack Overflow به تازگی در گزارش «چشم‌انداز توسعه‌دهندگان نرم‌افزاری ۲۰۱۷» خود منتشر کرده است.به گزارش ایتنا از رایورز به نقل از اینکوئیرر، این پلتفرم علاوه بر محبوبیت زیادی که نزد برنامه‌نویسان دارد، یکی از پرطرفدارترین زبان‌های برنامه‌نویسی برای صاحبان کسب و کارها و نیز توسعه‌دهندگان نیز محسوب می‌شود.نکته جالب توجه اینکه اکنون برای چندمین سال پیاپی است که کارشناسان و متخصصان این زبان برنامه‌نویسی بیشترین درخواست را برای پیدا کردن شغل جدید داشته‌اند تا بتوانند جایگاهی درآمدزا برای خود دست و پا کنند.گفتنی است برخی دیگر از زبان‌های برنامه‌نویسی از جمله #C، Python، جاوا، PHP، ++C و C نیز در خانواده پلتفرم‌های محبوب برنامه‌نویسی طبقه‌بندی می‌شوند، ضمن اینکه کارشناسان مسلط بر SQL نیز میانگین حقوق بالایی نسبت به دیگر متخصصان نرم‌افزاری دارند.مطابق این گزارش، لیست زبان‌های برنامه‌نویسی با بیشترین میزان استفاده و متناسب با محبوبیتشان، به قرار زیر منتشر شده است:- جاوا-اسکریپت: ۶۵.۳ درصد- SQL: ۵۴.۵ درصد- #C: ۴۰.۳ درصد- Python: ۳۰.۹ درصد- جاوا: ۲۹.۲ درصد- PHP: ۲۵.۶ درصد- ++C: ۱۶.۵ درصد- C: ۱۳.۱ درصد  ]]> برنامه نويسي Tue, 04 Apr 2017 07:04:04 GMT http://itna.ir/fa/doc/news/48480/جاوا-اسکریپت-دوباره-محبوب-ترین-زبان-برنامه-نویسی-جهان بدترين اختلالات نرم‌افزاري سال 2010 http://itna.ir/fa/doc/news/16221/بدترين-اختلالات-نرم-افزاري-سال-2010 شرکت SQS که در حوزه آزمايش کيفيت نرم‌افزارها فعاليت مي‌کند با کمک شرکت تحقيقاتي Ovum بررسي گسترده‌اي را انجام داده‌اند و بر پايه آن ليستي از پرمشکل‌ترين و ضعيف‌ترين نرم‌افزارها را منتشر کرده‌اند.در اين ليست به بزرگ‌ترين اختلالات نرم‌افزاري که موجب بروز مشکلات فراوان نيز شده، توجه شده است.رتبه نخست اين ليست به يک اختلال نرم‌افزاري بزرگ محسوب مي‌شود که باعث ايجاد اختلال در سيستم ترمز محصولات شرکت‌هاي خودروسازي تويوتا و BMW شد و به دنبال آن شرکت‌هاي مذکور مجبور شدند هزاران دستگاه از خودروهاي خود را جمع‌آوري کنند.در اين ليست همچنين به اختلال نرم‌افزاري سازمان ثبت بريتانيا نيز اشاره شده است که بر اساس آن ده‌ها سازمان بزرگ و دولتي اين کشور با مشکلات فراوان مواجه شدند.اين اختلال موجب شد سيستم جديد «تالار بورس لندن» با تاخير فعاليت خود را آغاز کند و در کنار آن، بيش از ۱۰ هزار گيرنده ماهواره‌اي GPS براي دو هفته غيرفعال شوند.ليست مرکز SQS به اختلال نرم‌افزاري سيستم مالياتي HMRC نيز اشاره کرده و توضيح داده است که اين مشکل موجب جلوگيري از پرداخت آنلاين ماليات‌ها شد. طي چند دهه گذشته اين نخستين بار بود كه چنين مشکلي براي سيستم مالياتي آمريکا به‌وجود آمد. ]]> برنامه نويسي Sat, 25 Dec 2010 11:58:02 GMT http://itna.ir/fa/doc/news/16221/بدترين-اختلالات-نرم-افزاري-سال-2010 پردرآمدترین زبان‌های برنامه‌نویسی جهان مشخص شد http://itna.ir/fa/doc/news/35415/پردرآمدترین-زبان-های-برنامه-نویسی-جهان-مشخص مرکز تحقیقاتی Startup Compass مطالعه گسترده‌ای را روی مهندسان حوزه برنامه‌نویسی در سراسر جهان انجام داد و در پایان اطلاعات ارزشمندی پیرامون میزان دستمزد و حقوق آنها به دست آورد و همچنین مشخص شد که متخصصان به واسطه کدام یک از زبان‌های برنامه‌نویسی بیشترین درآمد را به دست می‌آورند.به گزارش ایتنا از رایورز به نقل از تِک، نتایج حاصل از این گزارش با عنوان زیر به چاپ رسید: «چه میزان برای مهندس نرم‌افزار خود باید هزینه پرداخت کنید؟»مهندسانی که در این مطالعه شرکت کردند نه تنها در استارت‌آپ‌ها مشغول به کار بودند، بلکه به صورت آزاد در این زمینه فعالیت می‌کردند یا آنکه به استخدام شرکت‌های بزرگ درآمده بودند. در پایان این مطالعه مشخص شد پردرآمدترین زبان برنامه‌نویسی جهان برای مهندسان نرم‌افزار ++C است که به واسطه آن سالانه به طور میانگین ۱۱۰ هزار دلار درآمد کسب می‌کنند.پس از آن Python با میانگین درآمد سالانه ۱۰۲ هزار دلار قرار دارد و زبان برنامه‌نویسی C در رتبه سوم درآمد سالانه ۱۰۰ هزار دلاری را از آن مهندسان نرم‌افزار می‌کند. لیست پردرآمدترین زبان‌های برنامه‌نویسی جهان برای مهندسان نرم‌افزار و افراد فعال در این حوزه به قرار زیر اعلام شده است:۱- زبان ++C با میانگین درآمد سالانه ۱۱۰ هزار دلار۲- زبان Python با میانگین درآمد سالانه ۱۰۲ هزار دلار۳- زبان C با میانگین درآمد سالانه ۱۰۰ هزار دلار۴- زبان AWS آمازون با میانگین درآمد سالانه ۹۵ هزار دلار۵- زبان #C با میانگین درآمد سالانه ۹۲ هزار دلار۶- زبان Ruby با میانگین درآمد سالانه ۹۰ هزار دلار۷- زبان Java با میانگین درآمد سالانه ۹۰ هزار دلار۸- زبان SQL با میانگین درآمد سالانه ۸۰ هزار دلار۹- زبان JavaScript با میانگین درآمد سالانه ۷۸ هزار دلار۱۰- زبان Objective C با میانگین درآمد سالانه ۷۶ هزار دلار۱۱- زبان PHP با میانگین درآمد سالانه ۷۶ هزار دلار۱۲- زبان CSS با میانگین درآمد سالانه ۶۴ هزار دلار۱۳- زبان JavaScript - Design با میانگین درآمد سالانه ۶۰ هزار دلار۱۴- زبان CSS - Design با میانگین درآمد سالانه ۶۰ هزار دلارجدا از اینکه مدیران عامل شرکت‌ها مهندسان برنامه‌نویس را استخدام می‌کنند یا آنها به صورت آزاد به فعالیت خود ادامه می‌دهند، این بررسی نشان داد که ++C بیشترین سطح درآمد را برای کارشناسان نرم افزاری به همراه می‌آورد.  ]]> برنامه نويسي Fri, 10 Apr 2015 18:52:23 GMT http://itna.ir/fa/doc/news/35415/پردرآمدترین-زبان-های-برنامه-نویسی-جهان-مشخص Node.js یک گام بزرگ به عقب http://itna.ir/fa/doc/article/23184/node-js-یک-گام-بزرگ-عقب هر چند وقت یک‌بار، فناوري‌های جدیدی ظاهر مي‌شوند که شما را به شدت تحت‌تأثیر قرار مي‌دهند. در این مواقع معمولاً فکر مي‌‌کنید چنین چیزی باید زودتر معرفی مي‌شد و حال که معرفی شده، گامی مهم و سرآغاز تحولاتی شگرف خواهد بود. آخرین باری که این اتفاق برای من افتاد، زمانی بود که درباره پروژه‌ای به‌نام Node.JS یا Node (همان‌طور که باینری آن با این نام خوانده مي‌شود) کنجکاوی کردم و به کسب اطلاعات پرداختم. اگر یک توسعه‌دهنده وب هستید و به‌ویژه اگر با جاوا اسکریپت سروکار دارید، باید نود را به‌شدت جدی گرفته و اخبار توسعه آن را پیگیری کنید. با این‌که کمتر از دو سال از معرفی این پلتفرم مي‌گذرد، توجه بسیاری از کاربران را به خود جلب کرده و ابزارهای بسیاری بر‌اساس آن یا برای آن توسعه داده شده است. پلتفرم نود، یک گام بسیار بزرگ و تأثیر‌گذار به عقب (زمانی که نت اسکیپ به معرفی جاوا اسکریپت سمت سرور پرداخت) است که آینده را به شدت متحول خواهد کرد. Node.js چیست: بازگشت به جاوا اسکریپت نود، یک سیستم ‌نرم‌افزاری است که برای نوشتن برنامه‌هاي اینترنتی (به‌خصوص وب سرورهای جدید و پیشرفته) با توجه ویژه به قابلیت مقیاس پذیری بالا توسعه‌داده شده است. در این پلتفرم، برنامه‌ها با زبان جاوا اسکریپت نوشته مي‌شوند که در آن، با استفاده از سیستم ورودی‌/‌خروجی ناهمزمان (Asynchronous) و رویداد محور، سعی در کاهش سربار و افزایش مقیاس پذیری پلتفرم شده است. این پلتفرم در ابتدا توسط رايان داهل (Ryan Dahl) در سال ۲۰۰۹ نوشته شد و رشد و توسعه آن مرهون پشتیبانی Joynet، شرکت متبوع رایان داهل است. این پلتفرم با استفاده از زبان C و همچنین خود جاوا اسکریپت نوشته‌شده و حاوی موتور جاوا اسکریپت V۸ گوگل کروم و سیستم ماجولی Common JS به همراه برخی دیگر از کتابخانه‌هاي دیگر است و بر‌خلاف آنچه تا‌کنون مرسوم بود، نه روي مرورگر که در سمت سرور اجرا می‌شود. با استفاده از این پلتفرم، به سادگی مي‌توان وب‌سرورهای همزمان (Concurrent) بسیاری ایجاد کرد تا عملیات ورودی و خروجی را به روشی پر بازده (که با نام روش non-blocking شناخته مي‌شود) مدیریت ‌کرد. چنین امکاناتی برای TCP، DNS و HTTP در این پلتفرم در‌نظر گرفته‌شده است. این پلتفرم به طور کامل حاوی API جاوا اسکریپت بوده و همچنين، بخش‌هاي اضافه‌اي را نیز برای انجام عملیات‌هایی مانند کار با سیستم‌فایلي ارائه مي‌کند. توجه داشته باشید که Node.js باید به‌صورت جدا دانلود شده و پس از کامپایل در سرور مورد نظر، برای اجرای کدهای جاوااسکریپت مورد استفاده قرار گیرد (شكل۱). شکل ۱- نمایی از پلتفرم Node.js در حال نصب روی ویندوز چرا پلتفرم نود مهم است؟ با این‌که تاکنون پلتفرم‌هاي مشابهی با زبان‌هاي مختلف در این زمینه معرفی شده‌اند، اهمیت Node.js در این است که رایان داهل و همکاران وی با استفاده از جاوا اسکريپت چنین پلتفرم سمت سروری را تولید کرده‌اند که بی‌اغراق، مورد استفاده تمام توسعه‌دهندگان وب تاکنون بوده است زيرا همه آن‌ها برای انجام امور سمت کلاینت باید از جاوا اسکریپت استفاده مي‌کردند و معرفی نود باعث شد تا بسیاری به این فکر بیفتند که دیگر به زبان سمت سرور اختصاصی خود نیاز نداشته و با استفاده از جاوا اسکریپت، بسیاری از دردسرها کاهش خواهد یافت. از طرف دیگر، پارادایم خاص جاوا اسکریپت برای کار با Callback‌ها و انجام امور ورودی/خروجی به‌صورت non-blocking نیز در توجه توسعه‌دهند‌گان و گرایش بسیاری به سمت آن تأثیر به‌سزایی داشته است. برای روشن‌شدن میزان سودمندی نود، مثالي ذکر مي‌کنيم. تصور کنید در یک سایت اینترنتی، هزاران کاربر با وارد‌کردن URL سایت وارد آن شده و بسیاری دیگر، درخواست‌هاي AJAX بی شماری به وب سرور سایت مذکور ارسال مي‌کنند. در این شرایط، هر درخواست یک رشته یا thread جدید در برنامه وب سرور مورد استفاده (که عموماً آپاچی خواهد بود) ایجاد کرده تا اسکریپتی را، براي نمونه PHP که به احتمال، حاوی پرس‌و‌جو از پایگاه‌داده یا چیزی شبیه به آن است، اجرا کند و نتیجه این اجرا را برای مرورگر درخواست‌کننده ارسال کند. در این کاربرد دو مفهوم اصلی از اهمیت ویژه‌اي برخوردار هستند: یکی حافظه و دیگری ورودی/خروجی بلوکه‌کننده. زيرا هر thread اجرایی، حافظه بسیار زیادی را اشغال‌کرده و تعدد کاربران، امکان پر‌شدن حافظه سیستم و از کار افتادن خدمات مربوط را پیش‌مي‌آورد. همچنين، هر کدام از این رشته‌هاي پردازشی به عملیات ورودی/خروجی مانند دسترسی به پایگاه‌داده نیاز دارند که هرکدام به زمانی مشخص برای تکمیل‌شدن نیازمند است. در بيشتر موارد نیز به دلیل بزرگ‌بودن جدول‌هاي داده‌اي و نتایج پرس‌و‌جوهای انجام شده، اسکریپت اجرا‌کننده مجبور است تا باز‌گردانی داده‌ها از طرف پایگاه‌داده منتظر‌مانده و پس از دریافت، به اجرای بقیه دستورها بپردازد. به همین دلیل، این عملیات، عملیات ورودی/خروجی بلوکه کننده نامیده مي‌شود و تأثیری بسیار منفی روی عملکرد کلی سرور خواهد داشت. نکته منفی این رویداد علاوه بر انتظار اسکریپت برای بازگردانی داده‌هاي درخواست شده، مصرف توان‌پردازشی و حافظه در‌حین انتظار است که در صورتی که در مقیاس بالا اتفاق بیفتد، باعث نا‌کار‌آمدی کلی سیستم خواهد شد (شکل‌۲). شکل ۲- معماری گذشته وب‌سرورها حال اگر راهی باشد که بتوان این رشته‌هاي پردازشی را حذف کرده و همه را در یک انباره بزرگ قرار داد، مشکل مصرف حافظه برطرف خواهد شد. همچنين، در صورتی که بتوان تا زمانی که برای بازگردانی نتایج ورودی/خروجی (پرس‌و‌جو از پایگاه‌داده) منتظر هستیم، به انجام امور دیگر در اسکریپت خود بپردازیم مشکل بلوکه شدن نیز حذف شده و سرعت عملکرد به طور قابل توجهی افزایش خواهد یافت. این دو مورد دقیقاً کارهایی است که Node.js به انجام آن‌ها مبادرت ورزیده و به همین دلیل، اهميت بالایی در آینده برنامه‌هاي کاربردی وب خواهد داشت. یک سرور مبتنی بر Node.js، تمام اتصال‌هاي ورودی را در یک انباره مدیریت کرده و فریم‌ورک پس زمینه نود، مي‌تواند حالات و شرایط این اتصال‌ها را مدیریت کرده و براي نمونه، یک اتصال را به حالت «در حال انتظار» تبدیل کند. همچنين، در پلتفرم نود از پارادیم حلقه رویداد و Callback برای انجام امور پرس‌و‌جو از پایگاه داده استفاده شده است تا انتظار برای پاسخ از پایگاه داده، منابع ارزشمند سیستم را بلوکه نکند. در این حالت، فرآیند Callback به داده‌هاي بازگشتی از پایگاه‌داده تخصیص داده شده وهمزمان، نود به انجام امور دیگر مي‌پردازد که خود از هدر رفتن سیکل‌های CPU بیشتری جلوگیری مي‌کند. با استفاده از این روش، مرورگر سمت کلاینت تا فراهم‌شدن نتایج در حالت انتظار باقی‌مي‌ماند و با حالت درخواست داده‌ها از سرور threaded سنتی‌، هیچ تفاوتی احساس نمی‌کند. پس از آماده شدن نتایج پرس‌و‌جو از پایگاه‌داده، کد مشخص شده به‌عنوان Callback اجرا شده‌، اتصال مربوط را از انباره انتخاب‌کرده و حالت آن را از وضعیت «درحال انتظار» خارج کرده و با استفاده از آن، داده‌هاي لازم را به مرورگر ارسال می‌کند. استفاده از چنین ساختاری علاوه بر کاهش مصرف حافظه، سرعت اجرای بالایی را نیز به ارمغان مي‌آورد (شکل۳). شکل ۳- معماری قدیمی، اکنون با استفاده از node.js تغییر یافته است. همان‌طور که مي‌دانید، برنامه‌هاي تحت وب امروزی که بر مبنای AJAX کار مي‌کنند، بار کاری سنگینی را به سرورهای خود تحمیل مي‌کنند. در صورتی که به برنامه‌هاي گفت‌وگو یا بازی‌هاي تحت مرورگر چند بازیکنی توجه کنیم، متوجه خواهیم شد که آن‌ها اتصال‌هاي همزمان بسیاری را ایجاد مي‌کنند که زمان کم پاسخ‌گویی به هر کدام از آن‌ها بسیار مهم و حیاتی است. در چنین کاربردهایی است که قوت Node.js مشخص شده و روش مورد استفاده آن برای مدیریت امور بسیار پر اهمیت‌تر از گذشته به‌نظر مي‌آید. اگرچه تلاش‌هاي انجام شده برای استفاده از AJAX و Comet برای بهتر‌کردن تجربه وب بسیار ارزنده بوده و سوکت‌هاي HTML5 نیز تلاش قابل تقدیری برای توسعه و ایجاد سهولت در پاسخ به این نیازمندی‌ها بودند، اما تکمیل‌کننده این حلقه، استفاده از فناوري‌هاي جدید در سمت سرور بود که با معرفی و توسعه روزافزون Node.js به خوبی در حال شکل‌گیری است (شکل‌۴). شکل ۴- جایگاه کنونی نود در بازار سرورها در هر صورت، برای مقبولیت و گسترش روز‌افزون Node.js به اندکی زمان نیاز است تا توسعه‌دهندگانی که در چند سال اخیر و تا‌کنون بر مبنای پارادایم‌هاي سنتی AJAX به توسعه کد مي‌پرداختند، با روش جدید تطبیق پیدا کرده و به سوی آن گرایش پیدا کنند. زمانی که سایت‌هاي معروف و برنامه‌هاي وب مبتنی بر AJAX هر کدام سرور اختصاصی خود را داشته باشند، چندان دور نیست. در صورتی که تجربه کار با AJAX، COMET یا جاوااسکریپت را داشته‌اید، تجربه کار با Node.js را از دست ندهید. مطمئن باشید که پس از آن، هیچ علاقه‌اي برای بازگشت به استفاده از PHP نخواهید داشت. Node.js در یک نگاه توسعه وب با استفاده از یک زبان داینامیک (جاوااسکریپت) که روي یک ماشین مجازی خیلی سریع با نام V۸ اجرا مي‌شود. سرعت اجرای آن از Ruby ،Python و Perl بسیار بیشتر است. توانایی مدیریت‌کردن هزاران اتصال همزمان، با کمترین سربار و با استفاده از یک نرم‌افزار. شایستگی ذاتی جاوااسکریپت در کار با event loop‌ها با داشتن اشیاي درجه یک، قابل استفاده در توابع و همچنین نحوه بستن‌آن‌ها که سال‌ها توسط برنامه‌نویسان مختلف روي مرورگرها تمرین شده است. تعدد افرادی که برنامه‌نویسی با استفاده از جاوااسکریپت را مي‌دانند یا در آن حرفه‌اي هستند. به جرأت مي‌توان جاوااسکریپت را محبوب‌ترین زبان برنامه‌نویسی حال حاضر دانست. استفاده از جاوااسکریپت در سمت سرور به همراه استفاده از آن در سمت کلاینت، احتمال ناهمخوانی و بروز مشکلات و معضلات محیط‌های ناهمگون برنامه‌نویسی را کاهش‌داده و امکان برقراری ارتباط داده‌اي با استفاده از JSON میان هر دو طرف را فراهم مي‌سازد. استفاده از یک کد اعتبار‌سنجی فرم چه در سمت سرور و چه در سمت کلاینت واقعاً لذت‌بخش است. مزایا - مقیاس‌پذیر به هزاران اتصال فعال - بسیار سریع (به خصوص در مقایسه با PHP و Ruby) - امنیت بیشتر در مقابل بار اضافی اعمال شده به سرور (به خصوص در زمان وقوع حمله‌هاي DDOS که بقیه نرم‌افزارهاي سرور مانند SSH قابل دسترسی و پاسخ دهنده باقی مي‌مانند) - پارادایم ناهمزمان بسیار ساده، جذاب و آشنا - نیاز نداشتن به درگیری با مسائلی مانند thread-safety - عدم استفاده از Multithreading و به تبع آن، مواجه نشدن با باگ‌های قفل‌کننده - جامعه توسعه‌دهندگان بسیار عظیم و کتابخانه‌ها و ابزارهای توسعه‌داده شده غنی به همراه یک Package Manager قوی برای مدیریت ملحقات! معایب - پیچیدگی کد برنامه ناهمزمان (Asyncronous) و مشکل بودن یادگیری مفاهیم اولیه برای برنامه‌نویسان نا‌آشنا با مدل برنامه‌نویسی موازی. - تأخیر بسیار بالا در صورت نیاز وظایف داخلی به اتمام عملیات محوله. به دلیل این‌که برنامه به‌صورت تک رشته‌اي اجرا مي‌شود، یک تابع با زمان اجرای طولانی مي‌تواند سرعت پاسخ‌دهی کلی سیستم را به شدت کاهش دهد. - نبود یک کتابخانه استاندارد جاوااسکریپت. برنامه‌نویسان جاوااسکریپت به شدت به استفاده آسان از آن عادت کرده‌اند، بدون این‌که به وارد کردن کتابخانه خاصی نیاز داشته باشند. به‌همین دلیل، از هر چیزی در برنامه‌ها پنج مدل مختلف وجود خواهد داشت که سردرگمی خاصی را ایجاد مي‌کند. حتی ماجول‌هاي قرار‌داده شده در هسته Node.js نیز هر کدام پنج نوع مختلف دارند که به تکامل سریع‌تر مي‌انجامد، اما درجه ابهام بالایی را نیز در پی‌خواهد داشت. - سیستم‌هاي نهایی نوشته‌شده با این فناوري به‌شدت نسبت به مدل CGI، یعنی Apache+PHP یا Perl یا Ruby و... پیچیده‌تر بوده و استثناهای مدیریت‌نشده مي‌توانند کل فرآيند را متوقف‌کرده و نیاز به راه‌اندازی دوباره فرآيندهاي درحال کار روي کلاستر را الزامی سازند. یک کد باگ دار نیز مي‌تواند باعث خرابی فرآيند اجرایی مربوط شده و هر فرآيند درحال کار خراب، درخواست‌هاي بسیاری را بی‌پاسخ خواهد‌گذاشت که به تبع آن مقاومت کل سیستم در مقابل خرابی را کاهش داده و باعث کاهش کیفیت خدمات خواهد شد.  ]]> برنامه نويسي Thu, 09 Aug 2012 07:36:09 GMT http://itna.ir/fa/doc/article/23184/node-js-یک-گام-بزرگ-عقب Go بزرگ‌ترین زبان برنامه‌نویسی جهان می‌شود http://itna.ir/fa/doc/news/36728/go-بزرگ-ترین-زبان-برنامه-نویسی-جهان-می-شود جاوا بین مهندسان نرم افزار جهان محبوب‌ترین زبان برنامه‌نویسی محسوب می‌شود. به طور کلی گفته می‌شود که تقریبا همه شرکت‌های فناوری از این زبان برنامه‌نویسی استفاده می‌کنند و حتی برای توسعه بخش‌های مختلف اندروید گوگل هم این پلتفرم مورد استفاده قرار می‌گیرد.به گزارش ایتنا از رایورز به نقل از اندرویدهدلاینز،‌ جاوا با همه محبوبیت و کاربرد خود حفره‌های امنیتی فراوانی را شامل می‌شود و گوگل با توسعه زبان برنامه‌نویسی مجزا سعی کرده است این حفره‌ها را از میان بردارد.شرکت گوگل که از سال ۲۰۰۹ به صورت مخفیانه روی زبان برنامه‌نویسی خود کار می‌کرد، هم‌اکنون آن را با نام Go در اختیار مهندسان نرم‌افزار قرار داده است و پیش‌بینی می‌شود این پلتفرم طی چند سال آینده به محبوب‌ترین و کاربردی‌ترین زبان برنامه‌نویسی جهان تبدیل شود.«جیسون بوبرل» مدیر تولید این زبان برنامه‌نویسی اعلام کرد که بر اساس برنامه‌ریزی‌های گوگل، Go طی چند سال آینده جاوا را هم پشت‌سر می‌گذارد و به کاربردی‌تری زبان برنامه‌نویسی جهان تبدیل می‌شود. او اظهار داشت که یادگیری این زبان برنامه‌نویسی نسبت به جاوا بسیار آسان‌تر است، حفره‌های کمتری دارد و قابلیت‌های بیشتری را در اختیار برنامه‌نویسان قرار می‌دهد.بوبرل در این خصوص توضیح داد: «توسعه این زبان برنامه‌نویسی کامل شده است و مهندسان نرم‌افزار می‌توانند آن را مورد استفاده قرار دهند. این پلتفرم آسانی را با قابلیت‌های کاربردی آمیخته است و یک کارشناس نرم‌افزار آگاه به زبان‌های برنامه‌نویسی در کمتر از ۲ ساعت می‌تواند نحوه استفاده از آن را بیاموزد.»البته کارشناسان بر این باورند که جاوا به این زودی‌ها جایگاه خود را به رقبا نمی‌دهد و با وجود مشکلات فراوانی که دارد، همچنان به صورت گسترده مورد استفاده قرار می‌گیرد.  ]]> برنامه نويسي Mon, 22 Jun 2015 12:18:38 GMT http://itna.ir/fa/doc/news/36728/go-بزرگ-ترین-زبان-برنامه-نویسی-جهان-می-شود برنامه‌نویسی بدون اطلاع از دانش کدنویسی ممکن می‌شود http://itna.ir/fa/doc/news/42636/برنامه-نویسی-بدون-اطلاع-دانش-کدنویسی-ممکن-می-شود به گزارش ایتنا از فارس به نقل از پی.سی.ورلد، این ابزار Appساز، PowerApps نام دارد و استفاده از آن در سراسر جهان ممکن است. نسخه بتای خصوصی این برنامه سال گذشته به طور محدود توزیع شده بود.PowerApps امکان دریافت داده‌ها از منابع متنوع را دارد و می‌تواند بر همین اساس appهایی خلق کند که به راحتی بر روی گوشی‌ها و تبلت‌ها اجرا می‌شوند بدون آن‌که نیازی به هیچ گونه کدنویسی باشد. این کار موجب صرفه‌جویی قابل توجه در وقت و هزینه‌ها نیز می‌شود.برنامه‌هایی که به این شیوه طراحی می‌شوند بر روی iOS، Android و همین‌طور بر روی وب قابل اجرا هستند. از جمله منابعی که می‌توان از آن‌ها برای جمع‌آوری اطلاعات استفاده کرد Dropbox، OneDrive، Dynamics CRM و SharePoint Online قابل ذکر است.تنوع این منابع نشان می‌دهد که مایکروسافت قصد ندارد آن را تنها محدود به پلاتفورم خود نماید. البته به نظر می‌رسد این نوع برنامه‌ها بیشتر برای مصرف داخلی شرکت‌های تجاری مناسب باشند و استفاده گسترده‌تر از آن‌ها مستلزم ارتقای کیفیت برنامه‌های مذکور است. ]]> برنامه نويسي Sat, 30 Apr 2016 06:34:52 GMT http://itna.ir/fa/doc/news/42636/برنامه-نویسی-بدون-اطلاع-دانش-کدنویسی-ممکن-می-شود چرا Qt؟ http://itna.ir/fa/doc/news/17426/چرا-qt شاید ما نسبت به Qt اصولا کمی گرایش داشته باشیم؛ اما به شما هم توصیه می‌کنیم که آن را امتحان کنید. به گزارش ایتنا، این روزها، Qt چارچوب کاملی است که تمامی جنبه‌های تولید برنامه را در نظرگرفته و از پس آنها برمی‌آید. در اینجا ۱۳ دلیل به شما معرفی می‌کنیم تا برای استفاده از این کیت نرم‌افزاری ترغیب شوید:۱- پشتیبانی و سرمایه‌گذاریQt یک چارچوب برنامه‌نویسی منبع باز با کمک انجمنی خارق‌العاده است؛ اما خیلی سریع‌تر از پروژه‌هایی شبیه به خودش کار می‌کند. زیرا نوکیاست که آن را سرمایه‌گذاری و پشتیبانی می‌کند. نوکیا متعهد شده است که به کار توسعه Qt ادامه دهد، امکانات جدید به آن اضافه کند و پیش‌برد و ارتقا آن را پشتیبانی کند. Qt منبع ارزشمندی از خلاقیت، نرم‌افزارهایی با کیفیت بالا و راهکارهایی عالی است که با استراتژی امروز و نوآوری فردای ما اجین شده است.۲- استفاده از ویرایشگر بصریابزارهای برنامه‌نویسی بصری به طراحان این امکان را می‌دهد که رابط‌های کاربری زیبا و روان بسازند و همگام با برنامه‌نویسان برای روند تولید نرم‌افزار همکاری کنند. این محیط بصری تمام کارهای سخت و سنگینی که شامل مشخص کردن ابعاد و مشخصه‌های اجزاء رابط کاربری است را به صورت خودکار انجام می‌دهد.۳- استفاده از یک IDE قدرتمند و کاملسازندگان Qt قابلیت ویرایش، طراحی، خطاگیری، مدیریت پروژه، محلی کردن و ابزارهای تالیف را با هم ترکیب کرده‌اند. هر چیزی که شما برای خلق برنامه‌های عالی برای کامپیوترهای دسکتاپ و گوشی‌های هوشمند لازم دارید در Qt پیدا می‌شود. همه چیز طوری درست شده که در کنار هم کار کنند و دیگر نیازی نیست برای انجام کارهای متفاوت در یک برنامه در محیط‌های مختلف حرکت کنید. پکیج‌هایی مثل این، اغلب صدها پوند قیمت دارد و به هیچ وجه همه زبان‌های برنامه‌نویسی را پشتیبانی نمی‌کند.۴- رایگان بودنتمام ابزارهای Qt برای دانلود و استفاده رایگان هستند. شما اجازه دارید که از آنها حتی برای ایجاد پروژه‌های تبلیغاتی خود استفاده کنید. تنها استثنا زمانی است که شما بخواهید تغییری در ابزارهای Qt ایجاد کنید و آن را با انجمن به اشتراک نگذارید. اگر به این نتیجه رسیدید که این برنامه فقط مال شما نیست، پس برای شما هزینه‌ای نخواهد داشت.۵- پشتیبانی از چند پلت‌فرمتولید برنامه‌هایی که با استفاده از یک منبع ساخته شده‌اند و هم در کامپیوترهای Mac و هم ویندوز کار کند، بدون Qt کار بسیار حرفه‌ای و تخصصی است. به این دلیل است که بسیاری از برنامه‌هایی که در چند پلت‌فرم اجرا می‌شوند مانند Google Earth و Skype از آن استفاده می‌کنند. دوباره خاطر نشان می‌کنیم که فهرست اهداف ما شامل گوشی‌های هوشمند سیمبین و به زودی دستگاه‌های Maemo و MeeGo خواهد بود. ۶- ثبات و کیفیت بالا Qt از سال ۱۹۹۲ ایجاد شده است و جدیدترین نسخه آن ۴.۷.۲ به تازگی عرضه شده است. همه چیز در Qt تست شده، به طور حرفه‌ای استفاده شده، تعدیل شده، دوباره عرضه شده و بارها ارتقا پیدا کرده است. در نتیجه، میزان اعتبار بالاتری دارد و استفاده از آن بسیار راحت‌تر است.۷- انجمن آنلاین برجسته اگر مشکلی داشتید و خواستید در مورد کاری که انجام می‌دهید با کسی مشورت کنید و گپ بزنید، می‌توانید از انجمن مفید و آگاه Qt استفاده کنید. برای این کار یک بلاگ ایجاد شده است؛ البته message boards، nntp groups و mailing lists هم وجود دارد.۸- استفاده ازC++ برای نوشتن کد برای برنامه‌نویسان با تجربهمعمولا تصور غلطی در مورد Qt وجود دارد:Qt یک زبان برنامه‌نویسی جدید نیست. اگر شما برای برنامه‌نویسی آموزش دیده‌اید، پس این احتمال وجود دارد که برای بیشتر برنامه‌های خود از C++ یا Java استفاده می‌کنید. بیشتر برنامه‌های Qt به زبان C++ (با انضمام اضافاتی که برای سریعتر شدن کار نیاز است- تنها این مورد نیاز به کمی آموزش دارد) نوشته می‌شوند. البته پروژه نهایی می‌تواند به کلاینت‌های متفاوتی به راحتی گسترش پیدا کند. Qt این امکان را به شما می‌دهد که از همان مهارت‌های زبانی کنونی که دارید استفاده کنید تا نیازی نباشد که چیز جدیدی یاد بگیرید.۹- استفاده از QML برای نوشتن کدهای سریع‌تراگر به تازگی شروع کرده‌اید و می‌خواهید به سرعت چیزی خلق کنید، پس احتمالا بیشتر به Qt Quick علاقمند می‌شوید. در اینجا، شما از سازنده رابط کاربری بصری و کد JavaScript-style QML برای قرار دادن برنامه‌ها در کنار همدیگر استفاده می‌کنید. به یاد داشته باشید که ممکن است که قسمت‌های C++ و QML کاملا با یکدیگر ترکیب شوند و یک نرم‌افزار واحد را بسازند. ۱۰- استفاده از Python برای نوشتن کدهای قابل استفاده مجددانجمن Qt به تازگی PySide را عرضه کرده است که به برنامه‌نویسان Python این امکان را می‌دهد تا از عناصر رابط کاربری Qt برای تولید برنامه‌هایی قابل اجرا در چند پلت‌فرم از طریق زبان‌های قراردادی استفاده کنند. البته PyQt نیز وجود دارد. (هر دو مسیر برای کاربرانی است که با Terminal Modeها آشنا هستند و از کدهای منبع تشکیل شده‌اند. ۱۱- مورد استفاده برای گوشی‌های آندروید (به زودی)بسیاری از اضافات و برنامه‌های جانبی توسط اعضای انجمن آنلاین Qt ایجاد می‌شوند. به تازگی، امکان انتقال برنامه‌های Qt به گوشی‌های هوشمند آندروید ایجاد شده که نتایج مثبتی نیز داشته است. اگر در آینده توسعه پیدا کند، پنجره‌ای باز از فرصت‌ها به روی برنامه‌نویسان گوشی‌های هوشمند Qt خواهد گشود.۱۲- منبع باز و ایجاد فرصت‌های جدید مثالی که از آندروید زدیم، تنها یکی از راه‌ها برای نشان دادن قدرت انجمن منبع باز Qt است. ابزارها و متعلقات جدید به طور منظم ایجاد می‌شوند. اگر تا به حال حتی به یکی از آنها هم برنخورده‌اید، چیزی نیست که شما را از ساختن آن منع کند؛ پس آن را بسازید و به انجمن هدیه کنید.۱۳- مستندسازی، مستندسازی، مستندسازیبعد از ۱۸ سال تجربه در این کار، اعضای Qt مستندات بسیاری را گرد هم آورده‌اند؛ از نسخه‌های راهنما گرفته تا یادداشت‌های تئوری و خرده یادداشت‌های دستی. بعد از پیوستن به نوکیا، منبع غنی دیگری نیز مثل Forum Nokia نیز وجود دارد. ]]> برنامه نويسي Tue, 15 Mar 2011 09:32:34 GMT http://itna.ir/fa/doc/news/17426/چرا-qt آموزش زبان برنامه‌نویسی Swift اپل روی آیفون http://itna.ir/fa/doc/news/35363/آموزش-زبان-برنامه-نویسی-swift-اپل-روی-آیفون اپل در کنفرانس سال گذشته WWDC با رونمایی از زبان برنامه‌نویسی Swift برای توسعه ابزارهای مبتنی بر iOS و Mac همه مخاطبان خود را متعجب کرد.به گزارش ایتنا از رایورز به نقل از تِک‌کرانچ، این پلتفورم شبیه به چیزی بود که اپل برای خود اختراع کرده است. این محصول شبیه به دیگر زبان‌های برنامه‌نویسی مخصوص توسعه وب، سیستم اختصارنویسی و‌ ابزار ویژه برای خواندن زبان قدیمی Objective-C اپل را شامل می‌شد.این زبان برنامه‌نویسی توسط مهندسان اپل ساخته شد و به همین خاطر امکان خواندن سریع کدهای Cocoa را برای کاربران فراهم کرد.اگرچه هدف اپل از ارائه زبان برنامه‌نویسی مذکور این است که به همه کارشناسان امکان دهد ابزارهای کاربردی متناسب با محصولات آن را تولید کنند، اما در حال حاضر دیده می‌شود که برنامه‌نویسان تمایل چندانی به استفاده از Swift ندارند تا به کمک آن برای iOS و Mac ابزار کاربردی ارایه دهند و البته هنگام استفاده از آن هم پیچیدگی‌های فراوان را پیش روی خود می‌بینند. اپل و گروه توسعه دهنده محصولات آن هم‌اکنون تصمیم دارند این مشکل را حل کنند.در همان هفته که Swift ارائه شد،‌ یک نسخه از Xcode نیز در قالب یک کتاب رایگان برای پشتیبانی از این زبان برنامه‌نویسی در اختیار کاربران قرار گرفت و دوره‌های آموزش مختلف هم در کنار آن برگزار شد.اما برای افرادی که به تازگی تصمیم گرفته‌اند برنامه‌نویسی در زبان جدید اپل را آغاز کنند، ابزار کاربردی ویژه‌ای با نام Swifty ارائه شده است که یک فضای آموزشی تعاملی را ارائه می‌دهد و از پایه اصول برنامه‌‌نویسی مبتنی بر این پلتفورم را بازگو می‌کند.در ابزار کاربردی Swifty که روی آیفون و iPad نصب می‌شود، بیش از ۲۰۰ نوع آموزش مختلف آورده شده است و کاربران می‌توانند از سطوح پایین تا پیشرفته آنها را دنبال کنند.  ]]> برنامه نويسي Wed, 08 Apr 2015 06:58:36 GMT http://itna.ir/fa/doc/news/35363/آموزش-زبان-برنامه-نویسی-swift-اپل-روی-آیفون