ورود

View Full Version : سوال: شروع یک IDE اپن سورس



hotice
چهارشنبه 01 آبان 1387, 13:31 عصر
سلام
پیش نویس: من خودم مدتهاست که با جاوا کارمیکنم و IDE هایی نظیر Jdeveloper,websphier,... و در آخر Netbeas که دورادور با توسعه دهندگانش همکاری داشتم(دارم).
چند روزی هست که به پیشنهاد یکی از دوستان میخواهم یک پروژه opensource رو شروع کنم که یک IDE هست.
چرا IDE : با نگاه به یک IDE خوب متوجه میشوید که متشکل شده از ابزارهایی برای پیادی سازی تکنولژی های بکار رفته در یک زبان (البته مطمئناَ نه بطور واضح). خیلی از ide ها ابتدا شاید یک ادیتور ساده بیش نبوده که به مرور زمان به یک IDE قدرتمند تیدیل شده. خوب بگذریم.

خیلی وقته که من گه گاهی به این فروم سر میزنم ولی شور شوقی در بین کاربران اون نمیبینم( در مقایسه با فروم های دیگه) خیلی دوست داشتم بین دوست داران جاوا هم یک چنین شور و شوقی برقرار باشه.
فکری که به ذهنم رسید ایجاد یک IDE بود البته از نوع opensourceش . برای اینکار نیازی به دانش خاص برنامه نویسی نیست . دوستان میتونن برای مستند سازی هم همکاری کنند.


نظرات دوستان میتونه در راهبرد پروژه موثر باشه.

در ادامه در باره روند پروژه بیشتر مینویسیم

بی نوشت1: اگه غلت املایی دیدین زیاد اشکال نگیرین چون با عجله نوشتم.

saeed_Z_F
چهارشنبه 01 آبان 1387, 15:20 عصر
سلام
موافقم که توی قسمت جاوا شور و شوق زیادی وجود نداره ولی در مورد هدفتون از تولید یک IDE اپن سورس چیز زیادی متوجه نشدم اگه ممکنه در مورد هدفتون از این کار کمی توضیح بدین شاید من هم پایه شدم .
مثلا هدف IBM از تولید Eclipse داشتن یک چارچوب قوی برای ارائه محصولات نرم افزاریش برروی اونه یا هدف بنیانگذاران Netbeans انجام یک پروژه دانشجویی و کسب تجربه و ارائه توانایی های خود به شرکت های بزرگ (که در نهایت هم منجر به خرید Netbeans توسط سان شد) یا هدف اراکل از توسعه JDeveloper تولید یک ابزار برای فروش بیشتر سایر محصولات نرم افزاری (مانند : Oracle DB و یا Oracle ADF) خود است .
به نظر من هیچ پروژه نرم افزاری موفق در دنیا بدون هدف نبوده (یا برای سرگرمی) و این نشون میده هدف خیلی مهمه .

hotice
چهارشنبه 01 آبان 1387, 16:14 عصر
سلام
فراموش کردم تو پست قبلی هدفم رو بگم. بطور خلاصه:
1- همونطور که گفتم ایجاد شور شوق بین جاوا کارهای سایت!
2- خارج شدن زبان جاوا از حالت اکادمیک و کارایی تر نمایان شدن آن بین برنامه نویسان(حد اقل در همین سایت)
3- مرجع و راه حل برای خیلی از مشکلات بر نامه نویسی جاوا(رفع مشکلاتی که در ایجاد برنامه بوجود خواهد آمد می تواند برای خیلی از دوستان مورد استفاده واقع بشه)
4- ایجاد یک IDE سبک

اهداف فوق شاید ابتدایی به نظر برسند و لی در طول روند پروژه میتوانند تغیر کنند و تکمیل تر بشوند

manvaputra
چهارشنبه 01 آبان 1387, 19:11 عصر
سلام دوست عزیز مورد یک قابل توجه است ولی بقیه موارد مخصوصا مورد سه فکر نمیکنم دلیل خوبی باشه چون نت بینز این مشکلو به خوبی حل کرده

hotice
پنج شنبه 02 آبان 1387, 13:00 عصر
سلام دوست عزیز مورد یک قابل توجه است ولی بقیه موارد مخصوصا مورد سه فکر نمیکنم دلیل خوبی باشه چون نت بینز این مشکلو به خوبی حل کرده
سلام
دوست گرامی من خودم همین حالا هم خیلی از کارهام رو با نتبینز انجام میدم.بدون اینکه به ideی دیگه بخواهم فکر کنم(مگر موارد خاص)
قصد من هم رقابت با هیچ ideی دیگه ای نیست

D32.00110
پنج شنبه 02 آبان 1387, 21:42 عصر
به نام RGB(255,255,255)X

همین دیشب یکی از دوستام ازم درخواست شروع نوشتن یه IDE خوب واسه جاوا رو می کرد، در حال Surf بودم که اینجا رو دیدم ... :قلب:
خیلی عالی هست، جالب و کاربردی :کف: با اینکه من چیزی از برنامه نویسی سرم نمیشه ولی خوب به عنوان تماشاگر هم شده تشویق میکنم ... :تشویق: :تشویق: :تشویق:

امیدوارم در محاط لطف الهی به هدفهای بالاتری برسیم :چشمک:

hotice
جمعه 03 آبان 1387, 11:47 صبح
خوب برای شروع باید کد هامون رو توی یک ادیتوری بنویسیم و اونو کمپایل کنیم.
اول باخودم فکر کردم از ادیتور خو سیستم عامل استفاده کنم.
بعد گفتم چرا یک ادیتور ننویسیم و اونو گسترش ندیم!!! بله یک ادیتور خودمون مینویسم و از این به بعد برنامه هامونو توی اون می نویسیم .
یک پوشه به اسم jde مخفف (java development environment) بسازید و وارد اون بشید با دستور copy con jde.java و یا via jde.java توی لینوکس یک فایل بسازید و مستقیم دستورات زیر رو توش وارد کنید(سورس زیر از اینترنت گرفته شده و هیچ تلاشی برای نوشتن اون رو من انجام ندادم ولی تست شده است)



import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

public class jde extends JFrame {
private JTextArea _editArea;
private JFileChooser _fileChooser = new JFileChooser();
private Action _openAction = new OpenAction();
private Action _saveAction = new SaveAction();
private Action _exitAction = new ExitAction();

public static void main(String[] args) {
new jde();
}
public jde() {
_editArea = new JTextArea(15, 80);
_editArea.setBorder(BorderFactory.createEmptyBorde r(2,2,2,2));
_editArea.setFont(new Font("monospaced", Font.PLAIN, 14));
JScrollPane scrollingText = new JScrollPane(_editArea);
JPanel content = new JPanel();
content.setLayout(new BorderLayout());
content.add(scrollingText, BorderLayout.CENTER);
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = menuBar.add(new JMenu("File"));
fileMenu.setMnemonic('F');
fileMenu.add(_openAction);
fileMenu.add(_saveAction);
fileMenu.addSeparator();
fileMenu.add(_exitAction);
setContentPane(content);
setJMenuBar(menuBar);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("jde");
pack();
setLocationRelativeTo(null);
setVisible(true);
}
class OpenAction extends AbstractAction {
public OpenAction() {
super("Open...");
putValue(MNEMONIC_KEY, new Integer('O'));
}
public void actionPerformed(ActionEvent e) {
int retval = _fileChooser.showOpenDialog(jde.this);
if (retval == JFileChooser.APPROVE_OPTION) {
File f = _fileChooser.getSelectedFile();
try {
FileReader reader = new FileReader(f);
_editArea.read(reader, "");
} catch (IOException ioex) {
System.out.println(e);
System.exit(1);
}
}
}
}
class SaveAction extends AbstractAction {
SaveAction() {
super("Save...");
putValue(MNEMONIC_KEY, new Integer('S'));
}
public void actionPerformed(ActionEvent e) {
int retval = _fileChooser.showSaveDialog(jde.this);
if (retval == JFileChooser.APPROVE_OPTION) {
File f = _fileChooser.getSelectedFile();
try {
FileWriter writer = new FileWriter(f);
_editArea.write(writer);
} catch (IOException ioex) {
JOptionPane.showMessageDialog(jde.this, ioex);
System.exit(1);
}
}
}
}
class ExitAction extends AbstractAction {
public ExitAction() {
super("Exit");
putValue(MNEMONIC_KEY, new Integer('X'));
}
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
}

و با دستور javac jde.java کمپایلش کنید و با java jde اجراش کنید. :لبخندساده:
تبریک میگم اولین قدم برای ساخت ide رو برداشتید

http://i37.tinypic.com/2r7ae06.jpg

موفق باشید
ادامه دارد...........

hotice
جمعه 03 آبان 1387, 12:39 عصر
سوال : اگه این پروژه اپن سورسه چطوری باید عضوش بشیم ؟
جواب : خیلی راحت:
1- به عضویت سایت http://ospdev.net (http://ospdev.net) در بیایید
2- ای دیتون رو به من بدید
3- من عضوتون میکنم
سوال : چطوری به فایل ها دسترسی داشته باشیم؟
جواب : با svn اگه بلد نیستید طبق راهنمای زیر عمل کنید (برای ویندوز)
1- برنامه TortoisesSVN را از سایت http://tortoisesvn.net/downloads بگیرید
2- یک پوشه بسازید وارد آن شوید و بازدن کلید سمت راست گزینه SVN Checkout.. را انتخاب کنید
http://blogs.vertigosoftware.com/photos/jatwood/images/1892/original.aspx
3- svn+ssh://developername@svn.ospdev.net/svnroot/jde را در قسمت بالا وارد کنید.(بجای developername ایدی خودتان را وارد کنید)
http://blogs.vertigosoftware.com/photos/jatwood/images/1891/original.aspx


4- برای لینوکس svn checkout svn+ssh://developername@svn.ospdev.net/svnroot/jde.

سوال: از کجا می تونیم یکسری برنامه مشابه پیداکنیم که به این پروژه کمک کنیم؟
1- http://www.java2s.com/Code/Java/Swing-JFC/TextArea.htm
2- سورس برنامه جی ادیت http://www.jedit.org/index.php?page=download
3- خودتون بگردید و به این پروژه کمک کنید

amir-haghighi
شنبه 04 آبان 1387, 20:57 عصر
به ياد او::

شايد اين پست من چندان به پست شما ربط نداشته باشه اما ....

من مدتي هست كه شروع به كار كردم براي نوشتن يك اديتور مختص php,java,c.

اين اديتور به زبان c# نوشته ميشه.

دوستاني كه تمايل به همكاري دارن ميتونند با من تماس بگيرن و تمايل خودشون رو اعلام كنند.

pooyanm
سه شنبه 07 آبان 1387, 00:12 صبح
سلام به همه دوستان
راستش چند وقت یكبار چنین پیشنهادی میشه . بعد هم نیمه كاره رها میشه تنها نقطه امیدواری اینه كه توافق برای آی دی ای بیشتر از پروژه های دیگه هست ولی وقتی میخوای جدی كار رو شروع كنی تازه خودتو درشرایطی میبینی كه هیچی سر جاش نیست!:ناراحت:
از ما كه گذشت امیدوارم بتونید یه كار گروهی مرتب راه بندازید
موفق باشید

mazdadoost
سه شنبه 07 آبان 1387, 10:35 صبح
سلام به همه دوستان
راستش چند وقت یكبار چنین پیشنهادی میشه . بعد هم نیمه كاره رها میشه تنها نقطه امیدواری اینه كه توافق برای آی دی ای بیشتر از پروژه های دیگه هست ولی وقتی میخوای جدی كار رو شروع كنی تازه خودتو درشرایطی میبینی كه هیچی سر جاش نیست!:ناراحت:
از ما كه گذشت امیدوارم بتونید یه كار گروهی مرتب راه بندازید
موفق باشید

دوست عزیز :
بسیار مایلم نظر شما و سایر دوستان رو درباره چگونگی و علته نیمه کاره ماندن پروژه های گروهی که فرمودین بدونم .همچنین چنانچه ممکنه بفرمایید :آیا اصولا این پروژه ها شروع شده بود؟.
البته به نظرم مطرح شدن این موضوع در این تاپیک بی ربط باشه.و چنانچه دوستان موافق باشند تاپیکی با این موضوع درست شه تا در اون جا بهتر بشه در این مورد به بحث و گفتگو پرداخت.
با تشکر.

pooyanm
سه شنبه 07 آبان 1387, 12:51 عصر
دوست عزیز :
بسیار مایلم نظر شما و سایر دوستان رو درباره چگونگی و علته نیمه کاره ماندن پروژه های گروهی که فرمودین بدونم .همچنین چنانچه ممکنه بفرمایید :آیا اصولا این پروژه ها شروع شده بود؟.
البته به نظرم مطرح شدن این موضوع در این تاپیک بی ربط باشه.و چنانچه دوستان موافق باشند تاپیکی با این موضوع درست شه تا در اون جا بهتر بشه در این مورد به بحث و گفتگو پرداخت.
با تشکر.
سلام دوست گرامی
يه مراحلی رو دنبال كردیم ولي هيچوقت جدی ادامه پیدا نكرد اين هم آدرس تاپيك قبلی:
http://barnamenevis.org/forum/showthread.php?t=45358

manvaputra
سه شنبه 07 آبان 1387, 14:14 عصر
سلام دوستان سوال من اینه که چرا IDE ؟ البته سوال من به این منظور نیست که ایده بهتری دارم نه فقط واقعا دوست دارم بدونم چرا اکثر دوستان به سمت ایحاد یک ای دی ای مایل هستند؟

hotice
سه شنبه 07 آبان 1387, 16:46 عصر
سلام
چون سرم کمی شلوغ بود نمی خواستم پستی بفرستم اما با دیدن بعضی از گفته های دوستان خواستم بقیه رو در جریان روند این پروژه قرار بدم
سایت پروژه : jde.ospdev.net (http://jde.ospdev.net)
بدون عضو شدن میتونید با svn از این ادرس فایل ها رو بگیرید svn://svn.ospdev.net/svnroot/jde
اسکرین شات کنونی برنامه :
http://i36.tinypic.com/8xsr5h.jpg

اگه فایل ها رو گرفتید ساختار فایل ها بصورت زیر است(البته عکس رو بهتر از این نتونستم ویرایش کنم چون از Paint استفاده میکردم)

http://i34.tinypic.com/qyuuqg.jpg

بسته های مربوط به فریم, منو , ادیتور رو جدا کردم که بهتر بشه روش کار کرد و ایکن هارو هم در پوشه خودش گذاشتم, بسته ادیتور هم چیزی نداره چون میخواهم بهتر روش کار کنم.
فکر کنم با یک نگاه به برنامه بتونید راحت حتی با فهم کمی از جاوا این پروژه رو درک کنید.
در هرصورت اگه سوالی داشتید بپرسید.
مشتاقانه منتظر نظرات شما هستم.
موفق باشید.

hotice
سه شنبه 07 آبان 1387, 16:52 عصر
یادم رفت برای اجرا هم اگه اشکالی داشتید مثل تصویر فوق عمل کنید:
http://i37.tinypic.com/bi3t3a.jpg

hotice
پنج شنبه 09 آبان 1387, 10:24 صبح
سلام
سوالی داشتم خدمتتون . برای منوی view میخواهم toolbar رو view/hide بذارم. برنامه از چندین کلاس برای هرکدوم از کارها تشکیل شده.
کلاس Fream کلاس menubar و کلاس Tollbar رو فراخوانی میکنه.
کلاس menubar کلاس viewmenu رو فراخوانی می کند. من در کلاس fream ابجکت toolbar رو پاس دادم به menu bar وبعد پاس دادم به viewmenu ولی در اجرا با مشکل مواجه میشه:


///Class Fream
public class fream extends JFrame{
public fream(){
menubar mbar=new menubar();
setJMenuBar(mbar);
maintoolbar mtoolbar=new maintoolbar();
mbar.setToolbarObject(mtoolbar);

//Class Menu bar
public class menubar extends JMenuBar {
JToolBar etoolbar;


public menubar(){
vmenu.setToolbarObject(getToolbarObject());
}.
.
.
.

public void setToolbarObject(JToolBar toolbar)
{
etoolbar=toolbar;
}
JToolBar getToolbarObject(){
return etoolbar;
}


///View Menu

public class viewmenu extends JMenu {
private JToolBar etoolbar;
public viewmenu(){
.
.
.
if (etoolbar.isShowing()){
etoolbar.setVisible(false);
}
}

}
public void setToolbarObject(JToolBar toolbar)
{
etoolbar=toolbar;
}نظرتون چیه؟

mazdadoost
یک شنبه 12 آبان 1387, 13:45 عصر
سلام دوست گرامی
يه مراحلی رو دنبال كردیم ولي هيچوقت جدی ادامه پیدا نكرد اين هم آدرس تاپيك قبلی:
http://barnamenevis.org/forum/showthread.php?t=45358

با سلام:
دوست عزیز بنده به دقت تاپیکی که براش لینک گذاسته بودین مطالعه کردم.همچنین تاپیکه مشابهی رو برای پروژه موبایل و بلو توث دنبال میکردم ذکر چند به نظر خالی از اشکال نیست(هم برای شما هم برای دوست عزیز hotice که این تاپیک رو شروع کردن:
1-شروع هر کاری منجمله پروژه های مختلف و در مورد ما پروژه های برنامه نویسی نیازمند فراهم شدن امکاناتی هست.امکانان شامل توانایی ها و دانش هستند.
2-تفکر خلاقانه.
3-حد اقلی از نقدینگی.
چنانچه دوستان مایل به باز شدن موضوع باشند میتونیم در تاپیکی به باز کردن این موارد بپردازیم.
موفق باشید.

pooyanm
یک شنبه 12 آبان 1387, 16:54 عصر
با سلام:
دوست عزیز بنده به دقت تاپیکی که براش لینک گذاسته بودین مطالعه کردم.همچنین تاپیکه مشابهی رو برای پروژه موبایل و بلو توث دنبال میکردم ذکر چند به نظر خالی از اشکال نیست(هم برای شما هم برای دوست عزیز hotice که این تاپیک رو شروع کردن:
1-شروع هر کاری منجمله پروژه های مختلف و در مورد ما پروژه های برنامه نویسی نیازمند فراهم شدن امکاناتی هست.امکانان شامل توانایی ها و دانش هستند.
2-تفکر خلاقانه.
3-حد اقلی از نقدینگی.
چنانچه دوستان مایل به باز شدن موضوع باشند میتونیم در تاپیکی به باز کردن این موارد بپردازیم.
موفق باشید.
تا جايي كه من ميدونم پتانسيلي براي پروژه هاي گروهي در ماها نيست نهايتا كاري كه ميشه كرد اينه كه بگيم يه بخش Open Source هست هر كس شخصا يه پروژه رو اونجا دنبال كنه

mazdadoost
یک شنبه 12 آبان 1387, 20:13 عصر
تا جايي كه من ميدونم پتانسيلي براي پروژه هاي گروهي در ماها نيست نهايتا كاري كه ميشه كرد اينه كه بگيم يه بخش Open Source هست هر كس شخصا يه پروژه رو اونجا دنبال كنه

دوست عزیز :
1-شما از کجا تا کجا میدونید.اگه زحمتی نیست دوستدارم بدونم.
2-پتانسیل برای پروؤه های گروهی شامل چه مواردی میشه؟
3-چرا الزاما باید هرکسی شخصا یه پروژه شخصی رو دنبال کنه؟
4-چرا اپن سورس؟
ممنموم.

mansour01
جمعه 24 آبان 1387, 03:29 صبح
فوق العادست دوستان

متاسفانه به دلیل دانش کمی که در محیط اوپن سورس و خانواده یونیکس بیس دارم فکر نمی کنم بتونم کمکی کنم . من برای کاربرای ویندوز یه IDE رو به زبانی vb6 ارائه دادم و فقط صرفا برای تسهیل شروع کنندگان زبان جاوا در ویندوز ، ولی خب مشغله نمیذاره .
خیلی دوست داشتم دانشش رو داشتم و کمک می کردم ، ولی متاسفانه دانشم در این زمینه محدوده . به هر حال پیشنهاد می کنم یه دامنه اختصاصی با اعضای مشخص ایجاد کنید و کار رو بصورت یک پروژه تحقیقاتی ادامه بدید .